X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fwrite_http.c;h=41615d3f0ccbd0be9c1cefba46708a4ace10e680;hb=5523a080010dcb7a61dc0dccc3969a2a048e52f9;hp=d8d8c34e60f9fd0e1f2dcdb709ea63d65e61766d;hpb=e1d4681088e33d3ec256c296dff4dbaeb70b883a;p=collectd.git diff --git a/src/write_http.c b/src/write_http.c index d8d8c34e..41615d3f 100644 --- a/src/write_http.c +++ b/src/write_http.c @@ -362,7 +362,11 @@ static int wh_write_command (const data_set_t *ds, const value_list_t *vl, /* {{ int status; - if (0 != strcmp (ds->type, vl->type)) { + /* sanity checks, primarily to make static analyzers happy. */ + if ((cb == NULL) || (cb->send_buffer == NULL)) + return -1; + + if (strcmp (ds->type, vl->type) == 0) { ERROR ("write_http plugin: DS type does not match " "value list type"); return -1; @@ -649,7 +653,6 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ { wh_callback_t *cb; int buffer_size = 0; - user_data_t user_data = { 0 }; char callback_name[DATA_MAX_NAME_LEN]; int status = 0; @@ -813,7 +816,10 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ DEBUG ("write_http: Registering write callback '%s' with URL '%s'", callback_name, cb->location); - user_data.data = cb; + user_data_t user_data = { + .data = cb + }; + plugin_register_flush (callback_name, wh_flush, &user_data); user_data.free_func = wh_callback_free;