From c279c0e5bff589bd7be9a4d63e7bef3ca9ac65d2 Mon Sep 17 00:00:00 2001 From: Marc Fournier Date: Sat, 4 Apr 2015 22:26:34 +0200 Subject: [PATCH] apache: Add support for specifying a connection timeout --- src/apache.c | 11 +++++++++++ src/collectd.conf.pod | 6 ++++++ 2 files changed, 17 insertions(+) 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 -- 2.11.0