projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libcollectdclient: Propagate errors when signing / encrypting network packets.
[collectd.git]
/
src
/
curl_xml.c
diff --git
a/src/curl_xml.c
b/src/curl_xml.c
index
c9f0651
..
9049d99
100644
(file)
--- 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;
_Bool verify_host;
char *cacert;
char *post_body;
+ int timeout;
struct curl_slist *headers;
cx_namespace_t *namespaces;
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);
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 */
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));
}
memset (db, 0, sizeof (*db));
+ db->timeout = -1;
+
if (strcasecmp ("URL", ci->key) == 0)
{
status = cf_util_get_string (ci, &db->url);
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);
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);
else
{
WARNING ("curl_xml plugin: Option `%s' not allowed here.", child->key);