X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fwrite_http.c;h=bfb5524c936c699f3545640f7f6d0d17ce9b615b;hb=aee87d9c1665ca8823c7489bfc9900ff12e0e177;hp=6b1c64a7a48afbab11a6c1a2ff67b46efd10d789;hpb=9706a2064c099666f24ba2fa8576629fc97310cd;p=collectd.git diff --git a/src/write_http.c b/src/write_http.c index 6b1c64a7..bfb5524c 100644 --- a/src/write_http.c +++ b/src/write_http.c @@ -88,7 +88,7 @@ static int wh_send_buffer (wh_callback_t *cb) /* {{{ */ curl_easy_setopt (cb->curl, CURLOPT_POSTFIELDS, cb->send_buffer); status = curl_easy_perform (cb->curl); - if (status != 0) + if (status != CURLE_OK) { ERROR ("write_http plugin: curl_easy_perform failed with " "status %i: %s", @@ -506,6 +506,7 @@ static int wh_config_url (oconfig_item_t *ci) /* {{{ */ { wh_callback_t *cb; user_data_t user_data; + char callback_name[DATA_MAX_NAME_LEN]; int i; cb = malloc (sizeof (*cb)); @@ -556,16 +557,18 @@ static int wh_config_url (oconfig_item_t *ci) /* {{{ */ } } - DEBUG ("write_http: Registering write callback with URL %s", + ssnprintf (callback_name, sizeof (callback_name), "write_http/%s", cb->location); + DEBUG ("write_http: Registering write callback '%s' with URL '%s'", + callback_name, cb->location); memset (&user_data, 0, sizeof (user_data)); user_data.data = cb; user_data.free_func = NULL; - plugin_register_flush ("write_http", wh_flush, &user_data); + plugin_register_flush (callback_name, wh_flush, &user_data); user_data.free_func = wh_callback_free; - plugin_register_write ("write_http", wh_write, &user_data); + plugin_register_write (callback_name, wh_write, &user_data); return (0); } /* }}} int wh_config_url */ @@ -590,9 +593,18 @@ static int wh_config (oconfig_item_t *ci) /* {{{ */ return (0); } /* }}} int wh_config */ +static int wh_init (void) /* {{{ */ +{ + /* Call this while collectd is still single-threaded to avoid + * initialization issues in libgcrypt. */ + curl_global_init (CURL_GLOBAL_SSL); + return (0); +} /* }}} int wh_init */ + void module_register (void) /* {{{ */ { plugin_register_complex_config ("write_http", wh_config); + plugin_register_init ("write_http", wh_init); } /* }}} void module_register */ /* vim: set fdm=marker sw=8 ts=8 tw=78 et : */