Code

Various plugins: Set the cURL option "CURLOPT_NOSIGNAL".
authorMike Flisher <mike.flisher@gmail.com>
Sun, 22 May 2011 15:39:29 +0000 (17:39 +0200)
committerFlorian Forster <octo@collectd.org>
Sun, 22 May 2011 15:39:29 +0000 (17:39 +0200)
This fixes problems with version 7.21.2 (and later) of libcurl that are due to
collectd being a multi-threaded program.

Signed-off-by: Florian Forster <octo@collectd.org>
src/apache.c
src/ascent.c
src/bind.c
src/curl.c
src/curl_json.c
src/curl_xml.c
src/nginx.c
src/write_http.c

index 3d6d957c5c2a721a3ce328fd19e27c2439e39a8c..5f5441ff4ed7b9b4ff78b7bbce00d63333b0b6be 100644 (file)
@@ -406,6 +406,7 @@ static int init_host (apache_t *st) /* {{{ */
                return (-1);
        }
 
+       curl_easy_setopt (st->curl, CURLOPT_NOSIGNAL, 1);
        curl_easy_setopt (st->curl, CURLOPT_WRITEFUNCTION, apache_curl_callback);
        curl_easy_setopt (st->curl, CURLOPT_WRITEDATA, st);
 
index 6782fce199db3f5c9ffbbe984d81080e7e1a7cb3..993e480cb1746b0464741967eb6340921365ca7b 100644 (file)
@@ -539,6 +539,7 @@ static int ascent_init (void) /* {{{ */
     return (-1);
   }
 
+  curl_easy_setopt (curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, ascent_curl_callback);
   curl_easy_setopt (curl, CURLOPT_USERAGENT, PACKAGE_NAME"/"PACKAGE_VERSION);
   curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, ascent_curl_error);
index 6e0b907f1e89203150a554b76ea0fc93312de211..6e13a8be8964d83fa475af35ff9d03ecbbb253ed 100644 (file)
@@ -1382,6 +1382,7 @@ static int bind_init (void) /* {{{ */
     return (-1);
   }
 
+  curl_easy_setopt (curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, bind_curl_callback);
   curl_easy_setopt (curl, CURLOPT_USERAGENT, PACKAGE_NAME"/"PACKAGE_VERSION);
   curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, bind_curl_error);
index a533e147b1b6e2af1dcf00ff7634667b20bf4784..31cda39a2514f8d0a1993d4482e8525dbdb35cb0 100644 (file)
@@ -370,6 +370,7 @@ static int cc_page_init_curl (web_page_t *wp) /* {{{ */
     return (-1);
   }
 
+  curl_easy_setopt (wp->curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (wp->curl, CURLOPT_WRITEFUNCTION, cc_curl_callback);
   curl_easy_setopt (wp->curl, CURLOPT_WRITEDATA, wp);
   curl_easy_setopt (wp->curl, CURLOPT_USERAGENT,
index 248b91b5b07eaa0043eb76c66dd1e43a19a0dae0..55d4cd539d64b083eec5a0f28e3d27580579a383 100644 (file)
@@ -535,6 +535,7 @@ static int cj_init_curl (cj_t *db) /* {{{ */
     return (-1);
   }
 
+  curl_easy_setopt (db->curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (db->curl, CURLOPT_WRITEFUNCTION, cj_curl_callback);
   curl_easy_setopt (db->curl, CURLOPT_WRITEDATA, db);
   curl_easy_setopt (db->curl, CURLOPT_USERAGENT,
index c10955cb973a803902968781cdc73573d32f46b4..61b5adedf423a4a770da06d066b1e372b767dfcb 100644 (file)
@@ -734,6 +734,7 @@ static int cx_init_curl (cx_t *db) /* {{{ */
     return (-1);
   }
 
+  curl_easy_setopt (db->curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (db->curl, CURLOPT_WRITEFUNCTION, cx_curl_callback);
   curl_easy_setopt (db->curl, CURLOPT_WRITEDATA, db);
   curl_easy_setopt (db->curl, CURLOPT_USERAGENT,
index 697684277a153911fdc43474cdc74bdab5b62d1e..d9529516331740741475b0baecacbc943af0700c 100644 (file)
@@ -119,6 +119,7 @@ static int init (void)
     return (-1);
   }
 
+  curl_easy_setopt (curl, CURLOPT_NOSIGNAL, 1);
   curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, nginx_curl_callback);
   curl_easy_setopt (curl, CURLOPT_USERAGENT, PACKAGE_NAME"/"PACKAGE_VERSION);
   curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, nginx_curl_error);
index ab8757ed67f151875bc806279425f3c86d971c87..22b5842a85542633b77cd68739843f40bce132c7 100644 (file)
@@ -111,6 +111,7 @@ static int wh_callback_init (wh_callback_t *cb) /* {{{ */
                 return (-1);
         }
 
+        curl_easy_setopt (cb->curl, CURLOPT_NOSIGNAL, 1);
         curl_easy_setopt (cb->curl, CURLOPT_USERAGENT, PACKAGE_NAME"/"PACKAGE_VERSION);
 
         headers = NULL;