X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnginx.c;h=a0fa74f0207812cbf95781ac4b7c1c1a6ea4df26;hb=c6da31fb30c2fb1d131f92efcde0b3ec9a010b2c;hp=91bcf75404927bfcd708e16faf71b5b7606fe304;hpb=b2a7cb85e09f67cbaf114eb64bf736f3a24d9d55;p=collectd.git diff --git a/src/nginx.c b/src/nginx.c index 91bcf754..a0fa74f0 100644 --- a/src/nginx.c +++ b/src/nginx.c @@ -1,6 +1,7 @@ /** * collectd - src/nginx.c * Copyright (C) 2006,2007 Florian octo Forster + * Copyright (C) 2008 Sebastian Harl * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -18,6 +19,7 @@ * * Authors: * Florian octo Forster + * Sebastian Harl **/ #include "collectd.h" @@ -52,7 +54,8 @@ static const char *config_keys[] = }; static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); -static size_t nginx_curl_callback (void *buf, size_t size, size_t nmemb, void *stream) +static size_t nginx_curl_callback (void *buf, size_t size, size_t nmemb, + void __attribute__((unused)) *stream) { size_t len = size * nmemb; @@ -116,14 +119,16 @@ static int init (void) return (-1); } + curl_easy_setopt (curl, CURLOPT_NOSIGNAL, 1L); curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, nginx_curl_callback); curl_easy_setopt (curl, CURLOPT_USERAGENT, PACKAGE_NAME"/"PACKAGE_VERSION); curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, nginx_curl_error); if (user != NULL) { - if (ssnprintf (credentials, sizeof (credentials), - "%s:%s", user, pass == NULL ? "" : pass) >= sizeof (credentials)) + int status = ssnprintf (credentials, sizeof (credentials), + "%s:%s", user, pass == NULL ? "" : pass); + if ((status < 0) || ((size_t) status >= sizeof (credentials))) { ERROR ("nginx plugin: Credentials would have been truncated."); return (-1); @@ -137,22 +142,25 @@ static int init (void) curl_easy_setopt (curl, CURLOPT_URL, url); } - if ((verify_peer == NULL) || (strcmp (verify_peer, "true") == 0)) + curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt (curl, CURLOPT_MAXREDIRS, 50L); + + if ((verify_peer == NULL) || IS_TRUE (verify_peer)) { - curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1); + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1L); } else { - curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 0L); } - if ((verify_host == NULL) || (strcmp (verify_host, "true") == 0)) + if ((verify_host == NULL) || IS_TRUE (verify_host)) { - curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 2); + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 2L); } else { - curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 0); + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 0L); } if (cacert != NULL) @@ -177,7 +185,6 @@ static void submit (char *type, char *inst, long long value) vl.values = values; vl.values_len = 1; - vl.time = time (NULL); sstrncpy (vl.host, hostname_g, sizeof (vl.host)); sstrncpy (vl.plugin, "nginx", sizeof (vl.plugin)); sstrncpy (vl.plugin_instance, "", sizeof (vl.plugin_instance)); @@ -207,7 +214,7 @@ static int nginx_read (void) return (-1); nginx_buffer_len = 0; - if (curl_easy_perform (curl) != 0) + if (curl_easy_perform (curl) != CURLE_OK) { WARNING ("nginx plugin: curl_easy_perform failed: %s", nginx_curl_error); return (-1);