X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fmatch_empty_counter.c;h=80a29ac7b467db7f1f25f842b893011e2bf526aa;hb=a349e06f0c4e2c853eced8a2621f52ee712b6e0c;hp=caa3e7e302c000c342775e64665f5aa46ac3c6b0;hpb=9a68f99cfe1d2f3013534b3018068f808a6823c4;p=collectd.git diff --git a/src/match_empty_counter.c b/src/match_empty_counter.c index caa3e7e3..80a29ac7 100644 --- a/src/match_empty_counter.c +++ b/src/match_empty_counter.c @@ -1,6 +1,6 @@ /** * collectd - src/match_empty_counter.c - * Copyright (C) 2009 Florian Forster + * Copyright (C) 2009-2016 Florian Forster * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,69 +25,39 @@ **/ #include "collectd.h" + #include "common.h" #include "filter_chain.h" /* - * private data types - */ -struct mec_match_s; -typedef struct mec_match_s mec_match_t; -struct mec_match_s -{ - int dummy; -}; - -/* * internal helper functions */ static int mec_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ { - mec_match_t *m; - - m = calloc (1, sizeof (*m)); - if (m == NULL) - { - ERROR ("mec_create: calloc failed."); - return (-ENOMEM); - } - if (ci->children_num != 0) { ERROR ("empty_counter match: This match does not take any additional " "configuration."); } - *user_data = m; + *user_data = NULL; return (0); } /* }}} int mec_create */ -static int mec_destroy (void **user_data) /* {{{ */ +static int mec_destroy (__attribute__((unused)) void **user_data) /* {{{ */ { - if (user_data != NULL) - { - sfree (*user_data); - } - return (0); } /* }}} int mec_destroy */ -static int mec_match (const data_set_t __attribute__((unused)) *ds, /* {{{ */ +static int mec_match (__attribute__((unused)) const data_set_t *ds, /* {{{ */ const value_list_t *vl, - notification_meta_t __attribute__((unused)) **meta, void **user_data) + __attribute__((unused)) notification_meta_t **meta, + __attribute__((unused)) void **user_data) { - int num_counters; - int num_empty; - size_t i; - - if ((user_data == NULL) || (*user_data == NULL)) - return (-1); + int num_counters = 0; + int num_empty = 0; - - num_counters = 0; - num_empty = 0; - - for (i = 0; i < ds->ds_num; i++) + for (size_t i = 0; i < ds->ds_num; i++) { if ((ds->ds[i].type != DS_TYPE_DERIVE) && (ds->ds[i].type != DS_TYPE_COUNTER)) @@ -99,23 +69,19 @@ static int mec_match (const data_set_t __attribute__((unused)) *ds, /* {{{ */ num_empty++; } - if (num_counters == 0) - return (FC_MATCH_NO_MATCH); - else if (num_counters == num_empty) + if ((num_counters != 0) && (num_counters == num_empty)) return (FC_MATCH_MATCHES); - else - return (FC_MATCH_NO_MATCH); + + return (FC_MATCH_NO_MATCH); } /* }}} int mec_match */ void module_register (void) { - match_proc_t mproc; - - memset (&mproc, 0, sizeof (mproc)); - mproc.create = mec_create; - mproc.destroy = mec_destroy; - mproc.match = mec_match; - fc_register_match ("empty_counter", mproc); + fc_register_match ("empty_counter", (match_proc_t) { + .create = mec_create, + .destroy = mec_destroy, + .match = mec_match, + }); } /* module_register */ /* vim: set sw=2 sts=2 tw=78 et fdm=marker : */