From: Marc Fournier Date: Sat, 4 Apr 2015 20:26:34 +0000 (+0200) Subject: apache: Add support for specifying a connection timeout X-Git-Tag: collectd-5.5.0~56^2~5 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=c279c0e5bff589bd7be9a4d63e7bef3ca9ac65d2;p=collectd.git apache: Add support for specifying a connection timeout --- diff --git a/src/apache.c b/src/apache.c index 1099248a..9e91b802 100644 --- a/src/apache.c +++ b/src/apache.c @@ -53,6 +53,7 @@ struct apache_s char apache_curl_error[CURL_ERROR_SIZE]; size_t apache_buffer_size; size_t apache_buffer_fill; + int timeout; CURL *curl; }; /* apache_s */ @@ -179,6 +180,8 @@ static int config_add (oconfig_item_t *ci) } memset (st, 0, sizeof (*st)); + st->timeout = -1; + status = cf_util_get_string (ci, &st->name); if (status != 0) { @@ -207,6 +210,8 @@ static int config_add (oconfig_item_t *ci) status = cf_util_get_string (child, &st->cacert); else if (strcasecmp ("Server", child->key) == 0) status = cf_util_get_string (child, &st->server); + else if (strcasecmp ("Timeout", child->key) == 0) + status = cf_util_get_int (child, &st->timeout); else { WARNING ("apache plugin: Option `%s' not allowed here.", @@ -367,6 +372,12 @@ static int init_host (apache_t *st) /* {{{ */ if (st->cacert != NULL) curl_easy_setopt (st->curl, CURLOPT_CAINFO, st->cacert); + if (st->timeout >= 0) + curl_easy_setopt (st->curl, CURLOPT_TIMEOUT_MS, st->timeout); + else + curl_easy_setopt (st->curl, CURLOPT_TIMEOUT_MS, + CDTIME_T_TO_MS(plugin_get_interval())); + return (0); } /* }}} int init_host */ diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod index 35958b33..07ef54f1 100644 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@ -775,6 +775,12 @@ File that holds one or more SSL certificates. If you want to use HTTPS you will possibly need this option. What CA certificates come bundled with C and are checked by default depends on the distribution you use. +=item B I + +The B option sets the overall timeout for HTTP requests, in +milliseconds. By default, the configured B is used to set the +timeout. + =back =head2 Plugin C