X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fapache.c;h=23bba3ea6561e958c4f616fcf78e1aef9f7304cc;hb=c6da31fb30c2fb1d131f92efcde0b3ec9a010b2c;hp=39849e6e05d6ebdc7699103957ecbaf2c351211b;hpb=56e1979ea2d1a373c614cd71c902435f46090da1;p=collectd.git diff --git a/src/apache.c b/src/apache.c index 39849e6e..23bba3ea 100644 --- a/src/apache.c +++ b/src/apache.c @@ -313,7 +313,8 @@ static int config_add (oconfig_item_t *ci) (st->host != NULL) ? st->host : hostname_g, (st->name != NULL) ? st->name : "default"), - status = plugin_register_complex_read (callback_name, + status = plugin_register_complex_read (/* group = */ NULL, + /* name = */ callback_name, /* callback = */ apache_read_host, /* interval = */ NULL, /* user_data = */ &ud); @@ -405,6 +406,7 @@ static int init_host (apache_t *st) /* {{{ */ return (-1); } + curl_easy_setopt (st->curl, CURLOPT_NOSIGNAL, 1L); curl_easy_setopt (st->curl, CURLOPT_WRITEFUNCTION, apache_curl_callback); curl_easy_setopt (st->curl, CURLOPT_WRITEDATA, st); @@ -454,24 +456,25 @@ static int init_host (apache_t *st) /* {{{ */ } curl_easy_setopt (st->curl, CURLOPT_URL, st->url); - curl_easy_setopt (st->curl, CURLOPT_FOLLOWLOCATION, 1); + curl_easy_setopt (st->curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt (st->curl, CURLOPT_MAXREDIRS, 50L); if (st->verify_peer != 0) { - curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYPEER, 1); + curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYPEER, 1L); } else { - curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYPEER, 0L); } if (st->verify_host != 0) { - curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYHOST, 2); + curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYHOST, 2L); } else { - curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYHOST, 0); + curl_easy_setopt (st->curl, CURLOPT_SSL_VERIFYHOST, 0L); } if (st->cacert != NULL) @@ -640,7 +643,7 @@ static int apache_read_host (user_data_t *user_data) /* {{{ */ assert (st->curl != NULL); st->apache_buffer_fill = 0; - if (curl_easy_perform (st->curl) != 0) + if (curl_easy_perform (st->curl) != CURLE_OK) { ERROR ("apache: curl_easy_perform failed: %s", st->apache_curl_error); @@ -699,9 +702,18 @@ static int apache_read_host (user_data_t *user_data) /* {{{ */ return (0); } /* }}} int apache_read_host */ +static int apache_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 apache_init */ + void module_register (void) { plugin_register_complex_config ("apache", config); + plugin_register_init ("apache", apache_init); } /* void module_register */ /* vim: set sw=8 noet fdm=marker : */