summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 30cfed8)
raw | patch | inline | side by side (parent: 30cfed8)
author | loginator17 <loginator17@users.noreply.github.com> | |
Tue, 30 Sep 2014 14:45:25 +0000 (15:45 +0100) | ||
committer | loginator17 <loginator17@users.noreply.github.com> | |
Tue, 30 Sep 2014 14:45:25 +0000 (15:45 +0100) |
Adding abort on stuck connection
src/write_http.c | patch | blob | history |
diff --git a/src/write_http.c b/src/write_http.c
index d97bc9b52ce9fde8b736d80d31bb0ede208f9f70..80f42ab5b365801b195018b43e05e8bcf54bff43 100644 (file)
--- a/src/write_http.c
+++ b/src/write_http.c
char *clientkeypass;
long sslversion;
_Bool store_rates;
+ int abort_on_slow;
+ time_t interval;
#define WH_FORMAT_COMMAND 0
#define WH_FORMAT_JSON 1
return (-1);
}
+ if(cb->abort_on_slow && cb->interval > 0)
+ {
+ curl_easy_setopt(cb->curl, CURLOPT_LOW_SPEED_LIMIT, 100);
+ curl_easy_setopt(cb->curl, CURLOPT_LOW_SPEED_TIME, cb->interval);
+ }
+
curl_easy_setopt (cb->curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt (cb->curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
@@ -347,6 +355,8 @@ static int wh_write_command (const data_set_t *ds, const value_list_t *vl, /* {{
return (-1);
}
+ cb->interval = CDTIME_T_TO_TIME_T(vl->interval);
+
pthread_mutex_lock (&cb->send_lock);
if (cb->curl == NULL)
@@ -394,6 +404,8 @@ static int wh_write_json (const data_set_t *ds, const value_list_t *vl, /* {{{ *
wh_callback_t *cb)
{
int status;
+
+ cb->interval = CDTIME_T_TO_TIME_T(vl->interval);
pthread_mutex_lock (&cb->send_lock);
cf_util_get_boolean (child, &cb->store_rates);
else if (strcasecmp ("BufferSize", child->key) == 0)
cf_util_get_int (child, &buffer_size);
+ else if (strcasecmp ("LowSpeedLimit", child->key) == 0)
+ config_set_boolean (&cb->abort_on_slow, child);
else
{
ERROR ("write_http plugin: Invalid configuration "
}
}
+ if(cb->abort_on_slow)
+ {
+ cb->interval = CDTIME_T_TO_TIME_T(cf_get_default_interval ());
+ }
+
/* Determine send_buffer_size. */
cb->send_buffer_size = WRITE_HTTP_DEFAULT_BUFFER_SIZE;
if (buffer_size >= 1024)