X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Ffilecount.c;h=9ea8af7abe2792ebc7235094cb67f37e75a668e8;hb=59547eb66a3743ca0b458222d7a4318f3e659a60;hp=dc242ada10a54bf02f236645f7d283d0e9006e1e;hpb=5b1f0319aec6b6bfe3f710badfd449dcdeecb82d;p=collectd.git diff --git a/src/filecount.c b/src/filecount.c index dc242ada..9ea8af7a 100644 --- a/src/filecount.c +++ b/src/filecount.c @@ -18,7 +18,7 @@ * * Authors: * Alessandro Iurlano - * Florian octo Forster + * Florian octo Forster **/ #include "collectd.h" @@ -311,8 +311,8 @@ static int fc_config_add_dir_size (fc_directory_conf_t *dir, return (0); } /* int fc_config_add_dir_size */ -static int fc_config_add_dir_recursive (fc_directory_conf_t *dir, - oconfig_item_t *ci) +static int fc_config_add_dir_option (fc_directory_conf_t *dir, + oconfig_item_t *ci, int bit) { if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_BOOLEAN)) @@ -323,31 +323,12 @@ static int fc_config_add_dir_recursive (fc_directory_conf_t *dir, } if (ci->values[0].value.boolean) - dir->options |= FC_RECURSIVE; - else - dir->options &= ~FC_RECURSIVE; - - return (0); -} /* int fc_config_add_dir_recursive */ - -static int fc_config_add_dir_hidden (fc_directory_conf_t *dir, - oconfig_item_t *ci) -{ - if ((ci->values_num != 1) - || (ci->values[0].type != OCONFIG_TYPE_BOOLEAN)) - { - WARNING ("filecount plugin: The `Hidden' config options needs exactly " - "one boolean argument."); - return (-1); - } - - if (ci->values[0].value.boolean) - dir->options |= FC_HIDDEN; + dir->options |= bit; else - dir->options &= ~FC_HIDDEN; + dir->options &= ~bit; return (0); -} /* int fc_config_add_dir_hidden */ +} /* int fc_config_add_dir_option */ static int fc_config_add_dir (oconfig_item_t *ci) { @@ -375,6 +356,7 @@ static int fc_config_add_dir (oconfig_item_t *ci) if (dir->path == NULL) { ERROR ("filecount plugin: strdup failed."); + sfree (dir); return (-1); } @@ -400,9 +382,9 @@ static int fc_config_add_dir (oconfig_item_t *ci) else if (strcasecmp ("Size", option->key) == 0) status = fc_config_add_dir_size (dir, option); else if (strcasecmp ("Recursive", option->key) == 0) - status = fc_config_add_dir_recursive (dir, option); - else if (strcasecmp ("Hidden", option->key) == 0) - status = fc_config_add_dir_hidden (dir, option); + status = fc_config_add_dir_option (dir, option, FC_RECURSIVE); + else if (strcasecmp ("IncludeHidden", option->key) == 0) + status = fc_config_add_dir_option (dir, option, FC_HIDDEN); else { WARNING ("filecount plugin: fc_config_add_dir: " @@ -497,10 +479,8 @@ static int fc_read_dir_callback (const char *dirname, const char *filename, if (S_ISDIR (statbuf.st_mode) && (dir->options & FC_RECURSIVE)) { - if(dir->options & FC_HIDDEN) - status = walk_directory (abs_path, fc_read_dir_callback, dir,/* include hidden */1); - else - status = walk_directory (abs_path, fc_read_dir_callback, dir,/* include hidden */ 0); + status = walk_directory (abs_path, fc_read_dir_callback, dir, + /* include hidden = */ (dir->options & FC_HIDDEN) ? 1 : 0); return (status); } else if (!S_ISREG (statbuf.st_mode)) @@ -563,10 +543,8 @@ static int fc_read_dir (fc_directory_conf_t *dir) if (dir->mtime != 0) dir->now = time (NULL); - if(dir->options & FC_HIDDEN) - status = walk_directory (dir->path, fc_read_dir_callback, dir,/* include hidden */ 1); - else - status = walk_directory (dir->path, fc_read_dir_callback, dir,/* include hidden */ 0); + status = walk_directory (dir->path, fc_read_dir_callback, dir, + /* include hidden */ (dir->options & FC_HIDDEN) ? 1 : 0); if (status != 0) { WARNING ("filecount plugin: walk_directory (%s) failed.", dir->path);