X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcurl_xml.c;h=9049d9901f0733aec8cbd284b1335337f3c2ea5d;hb=b99f2ef5c262080cdd55d4dc056aaf23ba2ff907;hp=c9f06518ba1db2499031bc9b66ba262a73567b6d;hpb=9817e7298bd6c364fa17347327af54adf048bd21;p=collectd.git diff --git a/src/curl_xml.c b/src/curl_xml.c index c9f06518..9049d990 100644 --- a/src/curl_xml.c +++ b/src/curl_xml.c @@ -81,6 +81,7 @@ struct cx_s /* {{{ */ _Bool verify_host; char *cacert; char *post_body; + int timeout; struct curl_slist *headers; cx_namespace_t *namespaces; @@ -884,6 +885,14 @@ static int cx_init_curl (cx_t *db) /* {{{ */ if (db->post_body != NULL) curl_easy_setopt (db->curl, CURLOPT_POSTFIELDS, db->post_body); +#ifdef HAVE_CURLOPT_TIMEOUT_MS + if (db->timeout >= 0) + curl_easy_setopt (db->curl, CURLOPT_TIMEOUT_MS, (long) db->timeout); + else + curl_easy_setopt (db->curl, CURLOPT_TIMEOUT_MS, + CDTIME_T_TO_MS(plugin_get_interval())); +#endif + return (0); } /* }}} int cx_init_curl */ @@ -909,6 +918,8 @@ static int cx_config_add_url (oconfig_item_t *ci) /* {{{ */ } memset (db, 0, sizeof (*db)); + db->timeout = -1; + if (strcasecmp ("URL", ci->key) == 0) { status = cf_util_get_string (ci, &db->url); @@ -954,6 +965,8 @@ static int cx_config_add_url (oconfig_item_t *ci) /* {{{ */ status = cf_util_get_string (child, &db->post_body); else if (strcasecmp ("Namespace", child->key) == 0) status = cx_config_add_namespace (db, child); + else if (strcasecmp ("Timeout", child->key) == 0) + status = cf_util_get_int (child, &db->timeout); else { WARNING ("curl_xml plugin: Option `%s' not allowed here.", child->key);