X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ffilter_chain.c;h=01688ee2d397b8cb3f1ee14f73bbac560b2d7c46;hb=79367f94108a13a62f1ad3ef9d1045c5401e82c4;hp=e7f51d880f97bd97e2bb2c3327af281babb6fe69;hpb=c3ded5c8c28c37e87e53820da269ed2d9ccc608a;p=collectd.git diff --git a/src/filter_chain.c b/src/filter_chain.c index e7f51d88..01688ee2 100644 --- a/src/filter_chain.c +++ b/src/filter_chain.c @@ -268,19 +268,21 @@ static int fc_config_add_match (fc_match_t **matches_head, /* {{{ */ sstrncpy (m->name, ptr->name, sizeof (m->name)); memcpy (&m->proc, &ptr->proc, sizeof (m->proc)); - assert (m->proc.create != NULL); m->user_data = NULL; m->next = NULL; - status = (*m->proc.create) (ci, &m->user_data); - if (status != 0) + if (m->proc.create != NULL) { - WARNING ("Filter subsystem: Failed to create a %s match.", - m->name); - fc_free_matches (m); - return (-1); + status = (*m->proc.create) (ci, &m->user_data); + if (status != 0) + { + WARNING ("Filter subsystem: Failed to create a %s match.", + m->name); + fc_free_matches (m); + return (-1); + } } - + if (*matches_head != NULL) { ptr = *matches_head; @@ -331,7 +333,7 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */ t = (fc_target_t *) malloc (sizeof (*t)); if (t == NULL) { - ERROR ("fc_config_add_match: malloc failed."); + ERROR ("fc_config_add_target: malloc failed."); return (-1); } memset (t, 0, sizeof (*t)); @@ -346,7 +348,7 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */ status = (*t->proc.create) (ci, &t->user_data); if (status != 0) { - WARNING ("Filter subsystem: Failed to create a %s match.", + WARNING ("Filter subsystem: Failed to create a %s target.", t->name); fc_free_targets (t); return (-1); @@ -514,21 +516,6 @@ static int fc_config_add_chain (const oconfig_item_t *ci) /* {{{ */ break; } /* for (ci->children) */ - /* Additional sanity checking. */ - while (status == 0) - { - if (chain->targets == NULL) - { - WARNING ("Filter subsystem: Chain %s: No default target has been " - "specified. Please make sure that there is a block within " - "the block!", chain->name); - status = -1; - break; - } - - break; - } /* while (status == 0) */ - if (status != 0) { fc_free_chains (chain);