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);
return (-1);
}
+ cb->interval = CDTIME_T_TO_TIME_T(vl->interval);
+
pthread_mutex_lock (&cb->send_lock);
if (cb->curl == NULL)
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)