X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcurl.c;h=470f25db9094e5ebd2743a49fc72ca9dbfedfcd1;hb=3d7453f6c3a13dc49e9ed6dd6d7a19202a3b087e;hp=893cc54ca628cd8046af5a419752dd8e36e6fa1c;hpb=3dae3b4a426b3302227f58f015e33bea9813c9c9;p=collectd.git diff --git a/src/curl.c b/src/curl.c index 893cc54c..470f25db 100644 --- a/src/curl.c +++ b/src/curl.c @@ -167,16 +167,19 @@ static void cc_web_page_free (web_page_t *wp) /* {{{ */ static int cc_config_append_string (const char *name, struct curl_slist **dest, /* {{{ */ oconfig_item_t *ci) { + struct curl_slist *temp = NULL; if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING)) { WARNING ("curl plugin: `%s' needs exactly one string argument.", name); return (-1); } - *dest = curl_slist_append(*dest, ci->values[0].value.string); - if (*dest == NULL) + temp = curl_slist_append(*dest, ci->values[0].value.string); + if (temp == NULL) return (-1); + *dest = temp; + return (0); } /* }}} int cc_config_append_string */ @@ -327,7 +330,10 @@ static int cc_config_add_match (web_page_t *page, /* {{{ */ } /* while (status == 0) */ if (status != 0) + { + cc_web_match_free (match); return (status); + } match->match = match_create_simple (match->regex, match->exclude_regex, match->dstype); @@ -411,11 +417,13 @@ static int cc_page_init_curl (web_page_t *wp) /* {{{ */ if (wp->post_body != NULL) curl_easy_setopt (wp->curl, CURLOPT_POSTFIELDS, wp->post_body); +#ifdef HAVE_CURLOPT_TIMEOUT_MS if (wp->timeout >= 0) - curl_easy_setopt (wp->curl, CURLOPT_TIMEOUT_MS, wp->timeout); + curl_easy_setopt (wp->curl, CURLOPT_TIMEOUT_MS, (long) wp->timeout); else curl_easy_setopt (wp->curl, CURLOPT_TIMEOUT_MS, CDTIME_T_TO_MS(plugin_get_interval())); +#endif return (0); } /* }}} int cc_page_init_curl */ @@ -663,7 +671,7 @@ static int cc_read_page (web_page_t *wp) /* {{{ */ status = curl_easy_perform (wp->curl); if (status != CURLE_OK) { - ERROR ("curl plugin: curl_easy_perform failed with staus %i: %s", + ERROR ("curl plugin: curl_easy_perform failed with status %i: %s", status, wp->curl_errbuf); return (-1); } @@ -676,7 +684,7 @@ static int cc_read_page (web_page_t *wp) /* {{{ */ long response_code = 0; status = curl_easy_getinfo(wp->curl, CURLINFO_RESPONSE_CODE, &response_code); if(status != CURLE_OK) { - ERROR ("curl plugin: Fetching response code failed with staus %i: %s", + ERROR ("curl plugin: Fetching response code failed with status %i: %s", status, wp->curl_errbuf); } else { cc_submit_response_code(wp, response_code);