X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Ffilter_chain.c;h=a622af961dcf281b557c14634d9ef041a8d10175;hb=354f9991530248e45207d236eb74c1cc3d5238ef;hp=b93435fd0afc8bcd1caa8b8d60497aede96b6496;hpb=9e5cdde4656070893ecf59c6234af0593bdda1a0;p=collectd.git diff --git a/src/daemon/filter_chain.c b/src/daemon/filter_chain.c index b93435fd..a622af96 100644 --- a/src/daemon/filter_chain.c +++ b/src/daemon/filter_chain.c @@ -174,7 +174,7 @@ static char *fc_strdup (const char *orig) /* {{{ */ return (NULL); sz = strlen (orig) + 1; - dest = (char *) malloc (sz); + dest = malloc (sz); if (dest == NULL) return (NULL); @@ -235,13 +235,12 @@ static int fc_config_add_match (fc_match_t **matches_head, /* {{{ */ return (-1); } - m = (fc_match_t *) malloc (sizeof (*m)); + m = calloc (1, sizeof (*m)); if (m == NULL) { - ERROR ("fc_config_add_match: malloc failed."); + ERROR ("fc_config_add_match: calloc failed."); return (-1); } - memset (m, 0, sizeof (*m)); sstrncpy (m->name, ptr->name, sizeof (m->name)); memcpy (&m->proc, &ptr->proc, sizeof (m->proc)); @@ -307,13 +306,12 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */ return (-1); } - t = (fc_target_t *) malloc (sizeof (*t)); + t = calloc (1, sizeof (*t)); if (t == NULL) { - ERROR ("fc_config_add_target: malloc failed."); + ERROR ("fc_config_add_target: calloc failed."); return (-1); } - memset (t, 0, sizeof (*t)); sstrncpy (t->name, ptr->name, sizeof (t->name)); memcpy (&t->proc, &ptr->proc, sizeof (t->proc)); @@ -335,7 +333,7 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */ { t->user_data = NULL; } - + if (*targets_head != NULL) { ptr = *targets_head; @@ -373,14 +371,12 @@ static int fc_config_add_rule (fc_chain_t *chain, /* {{{ */ return (-1); } - rule = (fc_rule_t *) malloc (sizeof (*rule)); + rule = calloc (1, sizeof (*rule)); if (rule == NULL) { - ERROR ("fc_config_add_rule: malloc failed."); + ERROR ("fc_config_add_rule: calloc failed."); return (-1); } - memset (rule, 0, sizeof (*rule)); - rule->next = NULL; if (ci->values_num == 1) { @@ -392,7 +388,6 @@ static int fc_config_add_rule (fc_chain_t *chain, /* {{{ */ for (i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; - status = 0; if (strcasecmp ("Match", option->key) == 0) status = fc_config_add_match (&rule->matches, option); @@ -470,23 +465,18 @@ static int fc_config_add_chain (const oconfig_item_t *ci) /* {{{ */ if (chain == NULL) { - chain = (fc_chain_t *) malloc (sizeof (*chain)); + chain = calloc (1, sizeof (*chain)); if (chain == NULL) { - ERROR ("fc_config_add_chain: malloc failed."); + ERROR ("fc_config_add_chain: calloc failed."); return (-1); } - memset (chain, 0, sizeof (*chain)); sstrncpy (chain->name, ci->values[0].value.string, sizeof (chain->name)); - chain->rules = NULL; - chain->targets = NULL; - chain->next = NULL; } for (i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; - status = 0; if (strcasecmp ("Rule", option->key) == 0) status = fc_config_add_rule (chain, option); @@ -665,7 +655,7 @@ static int fc_bit_write_create (const oconfig_item_t *ci, /* {{{ */ } plugin = child->values[j].value.string; - temp = (fc_writer_t *) realloc (plugin_list, (plugin_list_len + 2) + temp = realloc (plugin_list, (plugin_list_len + 2) * (sizeof (*plugin_list))); if (temp == NULL) { @@ -733,6 +723,8 @@ static int fc_bit_write_invoke (const data_set_t *ds, /* {{{ */ "all write plugins failed with status %i (ENOENT). " "Most likely this means you didn't load any write plugins.", status); + + plugin_log_available_writers (); } else if (status != 0) { @@ -763,6 +755,8 @@ static int fc_bit_write_invoke (const data_set_t *ds, /* {{{ */ "Filter subsystem: Built-in target `write': Dispatching value to " "the `%s' plugin failed with status %i.", plugin_list[i].plugin, status); + + plugin_log_available_writers (); } else { @@ -822,14 +816,12 @@ int fc_register_match (const char *name, match_proc_t proc) /* {{{ */ DEBUG ("fc_register_match (%s);", name); - m = (fc_match_t *) malloc (sizeof (*m)); + m = calloc (1, sizeof (*m)); if (m == NULL) return (-ENOMEM); - memset (m, 0, sizeof (*m)); sstrncpy (m->name, name, sizeof (m->name)); memcpy (&m->proc, &proc, sizeof (m->proc)); - m->next = NULL; if (match_list_head == NULL) { @@ -856,14 +848,12 @@ int fc_register_target (const char *name, target_proc_t proc) /* {{{ */ DEBUG ("fc_register_target (%s);", name); - t = (fc_target_t *) malloc (sizeof (*t)); + t = calloc (1, sizeof (*t)); if (t == NULL) return (-ENOMEM); - memset (t, 0, sizeof (*t)); sstrncpy (t->name, name, sizeof (t->name)); memcpy (&t->proc, &proc, sizeof (t->proc)); - t->next = NULL; if (target_list_head == NULL) { @@ -902,17 +892,17 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */ { fc_rule_t *rule; fc_target_t *target; - int status; + int status = FC_TARGET_CONTINUE; if (chain == NULL) return (-1); DEBUG ("fc_process_chain (chain = %s);", chain->name); - status = FC_TARGET_CONTINUE; for (rule = chain->rules; rule != NULL; rule = rule->next) { fc_match_t *match; + status = FC_TARGET_CONTINUE; if (rule->name[0] != 0) { @@ -974,8 +964,7 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */ } } - if ((status == FC_TARGET_STOP) - || (status == FC_TARGET_RETURN)) + if ((status == FC_TARGET_STOP) || (status == FC_TARGET_RETURN)) { if (rule->name[0] != 0) { @@ -986,20 +975,10 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */ } break; } - else - { - status = FC_TARGET_CONTINUE; - } } /* for (rule) */ - if (status == FC_TARGET_STOP) - return (FC_TARGET_STOP); - else if (status == FC_TARGET_RETURN) - return (FC_TARGET_CONTINUE); - - /* for-loop has been aborted: A target returned `FC_TARGET_STOP' */ - if (rule != NULL) - return (FC_TARGET_CONTINUE); + if ((status == FC_TARGET_STOP) || (status == FC_TARGET_RETURN)) + return (status); DEBUG ("fc_process_chain (%s): Executing the default targets.", chain->name);