X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnginx.c;h=4e4ce3bbc6115572873668a76507f80ccd82b316;hb=e4fe9b4d69c69d922cad1272104fdb8de5c24faf;hp=e8282f23601c7c40516ee6e150e9ac7e8f740c81;hpb=ca316d91e178412604ea8462dc60a8bc32cbfc87;p=collectd.git diff --git a/src/nginx.c b/src/nginx.c index e8282f23..4e4ce3bb 100644 --- a/src/nginx.c +++ b/src/nginx.c @@ -39,6 +39,7 @@ static char *pass = NULL; static char *verify_peer = NULL; static char *verify_host = NULL; static char *cacert = NULL; +static char *timeout = NULL; static CURL *curl = NULL; @@ -53,7 +54,8 @@ static const char *config_keys[] = "Password", "VerifyPeer", "VerifyHost", - "CACert" + "CACert", + "Timeout" }; static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); @@ -107,14 +109,14 @@ static int config (const char *key, const char *value) return (config_set (&verify_host, value)); else if (strcasecmp (key, "cacert") == 0) return (config_set (&cacert, value)); + else if (strcasecmp (key, "timeout") == 0) + return (config_set (&timeout, value)); else return (-1); } /* int config */ static int init (void) { - static char credentials[1024]; - if (curl != NULL) curl_easy_cleanup (curl); @@ -131,6 +133,11 @@ static int init (void) if (user != NULL) { +#ifdef HAVE_CURLOPT_USERNAME + curl_easy_setopt (curl, CURLOPT_USERNAME, user); + curl_easy_setopt (curl, CURLOPT_PASSWORD, (pass == NULL) ? "" : pass); +#else + static char credentials[1024]; int status = ssnprintf (credentials, sizeof (credentials), "%s:%s", user, pass == NULL ? "" : pass); if ((status < 0) || ((size_t) status >= sizeof (credentials))) @@ -140,6 +147,7 @@ static int init (void) } curl_easy_setopt (curl, CURLOPT_USERPWD, credentials); +#endif } if (url != NULL) @@ -173,6 +181,18 @@ static int init (void) curl_easy_setopt (curl, CURLOPT_CAINFO, cacert); } +#ifdef HAVE_CURLOPT_TIMEOUT_MS + if (timeout != NULL) + { + curl_easy_setopt (curl, CURLOPT_TIMEOUT_MS, atol(timeout)); + } + else + { + curl_easy_setopt (curl, CURLOPT_TIMEOUT_MS, + CDTIME_T_TO_MS(plugin_get_interval())); + } +#endif + return (0); } /* void init */