X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdf.c;h=3cade6a2318c8ff224e75f9205be2580b03b1249;hb=6e41c3b1f024d7944e5e8010a87933555c662474;hp=1581e0cc9082cb266b1e8dbf39f515d28a926b11;hpb=79963d13c1884d1d92667cc502ad20758b084a12;p=collectd.git diff --git a/src/df.c b/src/df.c index 1581e0cc..3cade6a2 100644 --- a/src/df.c +++ b/src/df.c @@ -55,10 +55,10 @@ static ignorelist_t *il_device = NULL; static ignorelist_t *il_mountpoint = NULL; static ignorelist_t *il_fstype = NULL; -static _Bool by_device = 0; -static _Bool report_inodes = 0; -static _Bool values_absolute = 1; -static _Bool values_percentage = 0; +static bool by_device; +static bool report_inodes; +static bool values_absolute = true; +static bool values_percentage; static int df_init(void) { if (il_device == NULL) @@ -68,7 +68,7 @@ static int df_init(void) { if (il_fstype == NULL) il_fstype = ignorelist_create(1); - return (0); + return 0; } static int df_config(const char *key, const char *value) { @@ -76,16 +76,16 @@ static int df_config(const char *key, const char *value) { if (strcasecmp(key, "Device") == 0) { if (ignorelist_add(il_device, value)) - return (1); - return (0); + return 1; + return 0; } else if (strcasecmp(key, "MountPoint") == 0) { if (ignorelist_add(il_mountpoint, value)) - return (1); - return (0); + return 1; + return 0; } else if (strcasecmp(key, "FSType") == 0) { if (ignorelist_add(il_fstype, value)) - return (1); - return (0); + return 1; + return 0; } else if (strcasecmp(key, "IgnoreSelected") == 0) { if (IS_TRUE(value)) { ignorelist_set_invert(il_device, 0); @@ -96,50 +96,46 @@ static int df_config(const char *key, const char *value) { ignorelist_set_invert(il_mountpoint, 1); ignorelist_set_invert(il_fstype, 1); } - return (0); + return 0; } else if (strcasecmp(key, "ReportByDevice") == 0) { if (IS_TRUE(value)) - by_device = 1; + by_device = true; - return (0); + return 0; } else if (strcasecmp(key, "ReportInodes") == 0) { if (IS_TRUE(value)) - report_inodes = 1; + report_inodes = true; else - report_inodes = 0; + report_inodes = false; - return (0); + return 0; } else if (strcasecmp(key, "ValuesAbsolute") == 0) { if (IS_TRUE(value)) - values_absolute = 1; + values_absolute = true; else - values_absolute = 0; + values_absolute = false; - return (0); + return 0; } else if (strcasecmp(key, "ValuesPercentage") == 0) { if (IS_TRUE(value)) - values_percentage = 1; + values_percentage = true; else - values_percentage = 0; + values_percentage = false; - return (0); + return 0; } - return (-1); + return -1; } __attribute__((nonnull(2))) static void df_submit_one(char *plugin_instance, const char *type, const char *type_instance, gauge_t value) { - value_t values[1]; value_list_t vl = VALUE_LIST_INIT; - values[0].gauge = value; - - vl.values = values; + vl.values = &(value_t){.gauge = value}; vl.values_len = 1; - sstrncpy(vl.host, hostname_g, sizeof(vl.host)); sstrncpy(vl.plugin, "df", sizeof(vl.plugin)); if (plugin_instance != NULL) sstrncpy(vl.plugin_instance, plugin_instance, sizeof(vl.plugin_instance)); @@ -156,13 +152,14 @@ static int df_read(void) { #elif HAVE_STATFS struct statfs statbuf; #endif + int retval = 0; /* struct STATANYFS statbuf; */ cu_mount_t *mnt_list; mnt_list = NULL; if (cu_mount_getlist(&mnt_list) == NULL) { ERROR("df plugin: cu_mount_getlist failed."); - return (-1); + return -1; } for (cu_mount_t *mnt_ptr = mnt_list; mnt_ptr != NULL; @@ -193,7 +190,8 @@ static int df_read(void) { } /* Duplicate found: leave non-NULL dup_ptr. */ - if (by_device && + if (by_device && (mnt_ptr->spec_device != NULL) && + (dup_ptr->spec_device != NULL) && (strcmp(mnt_ptr->spec_device, dup_ptr->spec_device) == 0)) break; else if (!by_device && (strcmp(mnt_ptr->dir, dup_ptr->dir) == 0)) @@ -205,9 +203,7 @@ static int df_read(void) { continue; if (STATANYFS(mnt_ptr->dir, &statbuf) < 0) { - char errbuf[1024]; - ERROR(STATANYFS_STR "(%s) failed: %s", mnt_ptr->dir, - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR(STATANYFS_STR "(%s) failed: %s", mnt_ptr->dir, STRERRNO); continue; } @@ -287,8 +283,10 @@ static int df_read(void) { (gauge_t)((float_t)(blk_reserved) / statbuf.f_blocks * 100)); df_submit_one(disk_name, "percent_bytes", "used", (gauge_t)((float_t)(blk_used) / statbuf.f_blocks * 100)); - } else - return (-1); + } else { + retval = -1; + break; + } } /* inode handling */ @@ -318,8 +316,10 @@ static int df_read(void) { df_submit_one( disk_name, "percent_inodes", "used", (gauge_t)((float_t)(inode_used) / statbuf.f_files * 100)); - } else - return (-1); + } else { + retval = -1; + break; + } } if (values_absolute) { df_submit_one(disk_name, "df_inodes", "free", (gauge_t)inode_free); @@ -332,7 +332,7 @@ static int df_read(void) { cu_mount_freelist(mnt_list); - return (0); + return retval; } /* int df_read */ void module_register(void) {