Merge branch 'collectd-5.8'
[collectd.git] / src / apache.c
index 547d745..5c67a38 100644 (file)
@@ -40,8 +40,8 @@ struct apache_s {
   char *url;
   char *user;
   char *pass;
-  _Bool verify_peer;
-  _Bool verify_host;
+  bool verify_peer;
+  bool verify_host;
   char *cacert;
   char *ssl_ciphers;
   char *server; /* user specific server type */
@@ -82,26 +82,22 @@ static void apache_free(void *arg) {
 
 static size_t apache_curl_callback(void *buf, size_t size, size_t nmemb,
                                    void *user_data) {
-  size_t len = size * nmemb;
-  apache_t *st;
-
-  st = user_data;
+  apache_t *st = user_data;
   if (st == NULL) {
     ERROR("apache plugin: apache_curl_callback: "
           "user_data pointer is NULL.");
-    return (0);
+    return 0;
   }
 
+  size_t len = size * nmemb;
   if (len == 0)
-    return (len);
+    return len;
 
   if ((st->apache_buffer_fill + len) >= st->apache_buffer_size) {
-    char *temp;
-
-    temp = realloc(st->apache_buffer, st->apache_buffer_fill + len + 1);
+    char *temp = realloc(st->apache_buffer, st->apache_buffer_fill + len + 1);
     if (temp == NULL) {
       ERROR("apache plugin: realloc failed.");
-      return (0);
+      return 0;
     }
     st->apache_buffer = temp;
     st->apache_buffer_size = st->apache_buffer_fill + len + 1;
@@ -111,27 +107,25 @@ static size_t apache_curl_callback(void *buf, size_t size, size_t nmemb,
   st->apache_buffer_fill += len;
   st->apache_buffer[st->apache_buffer_fill] = 0;
 
-  return (len);
+  return len;
 } /* int apache_curl_callback */
 
 static size_t apache_header_callback(void *buf, size_t size, size_t nmemb,
                                      void *user_data) {
-  size_t len = size * nmemb;
-  apache_t *st;
-
-  st = user_data;
+  apache_t *st = user_data;
   if (st == NULL) {
     ERROR("apache plugin: apache_header_callback: "
           "user_data pointer is NULL.");
-    return (0);
+    return 0;
   }
 
+  size_t len = size * nmemb;
   if (len == 0)
-    return (len);
+    return len;
 
   /* look for the Server header */
   if (strncasecmp(buf, "Server: ", strlen("Server: ")) != 0)
-    return (len);
+    return len;
 
   if (strstr(buf, "Apache") != NULL)
     st->server_type = APACHE;
@@ -146,7 +140,7 @@ static size_t apache_header_callback(void *buf, size_t size, size_t nmemb,
     NOTICE("apache plugin: Unknown server software: %s", hdr);
   }
 
-  return (len);
+  return len;
 } /* apache_header_callback */
 
 /* Configuration handling functiions
@@ -158,21 +152,18 @@ static size_t apache_header_callback(void *buf, size_t size, size_t nmemb,
  * </Plugin>
  */
 static int config_add(oconfig_item_t *ci) {
-  apache_t *st;
-  int status;
-
-  st = calloc(1, sizeof(*st));
+  apache_t *st = calloc(1, sizeof(*st));
   if (st == NULL) {
     ERROR("apache plugin: calloc failed.");
-    return (-1);
+    return -1;
   }
 
   st->timeout = -1;
 
-  status = cf_util_get_string(ci, &st->name);
+  int status = cf_util_get_string(ci, &st->name);
   if (status != 0) {
     sfree(st);
-    return (status);
+    return status;
   }
   assert(st->name != NULL);
 
@@ -216,33 +207,28 @@ static int config_add(oconfig_item_t *ci) {
     status = -1;
   }
 
-  if (status == 0) {
-    char callback_name[3 * DATA_MAX_NAME_LEN];
-
-    ssnprintf(callback_name, sizeof(callback_name), "apache/%s/%s",
-              (st->host != NULL) ? st->host : hostname_g,
-              (st->name != NULL) ? st->name : "default");
-
-    status = plugin_register_complex_read(
-        /* group = */ NULL,
-        /* name      = */ callback_name,
-        /* callback  = */ apache_read_host,
-        /* interval  = */ 0, &(user_data_t){
-                                 .data = st, .free_func = apache_free,
-                             });
-  }
-
   if (status != 0) {
     apache_free(st);
-    return (-1);
+    return -1;
   }
 
-  return (0);
+  char callback_name[3 * DATA_MAX_NAME_LEN];
+
+  snprintf(callback_name, sizeof(callback_name), "apache/%s/%s",
+           (st->host != NULL) ? st->host : hostname_g,
+           (st->name != NULL) ? st->name : "default");
+
+  return plugin_register_complex_read(
+      /* group = */ NULL,
+      /* name      = */ callback_name,
+      /* callback  = */ apache_read_host,
+      /* interval  = */ 0,
+      &(user_data_t){
+          .data = st, .free_func = apache_free,
+      });
 } /* int config_add */
 
 static int config(oconfig_item_t *ci) {
-  int status = 0;
-
   for (int i = 0; i < ci->children_num; i++) {
     oconfig_item_t *child = ci->children + i;
 
@@ -256,7 +242,7 @@ static int config(oconfig_item_t *ci) {
               child->key);
   } /* for (ci->children) */
 
-  return (status);
+  return 0;
 } /* int config */
 
 /* initialize curl for each host */
@@ -272,7 +258,7 @@ static int init_host(apache_t *st) /* {{{ */
 
   if ((st->curl = curl_easy_init()) == NULL) {
     ERROR("apache plugin: init_host: `curl_easy_init' failed.");
-    return (-1);
+    return -1;
   }
 
   curl_easy_setopt(st->curl, CURLOPT_NOSIGNAL, 1L);
@@ -311,24 +297,21 @@ static int init_host(apache_t *st) /* {{{ */
                      (st->pass == NULL) ? "" : st->pass);
 #else
     static char credentials[1024];
-    int status;
-
-    status = ssnprintf(credentials, sizeof(credentials), "%s:%s", st->user,
-                       (st->pass == NULL) ? "" : st->pass);
+    int status = snprintf(credentials, sizeof(credentials), "%s:%s", st->user,
+                          (st->pass == NULL) ? "" : st->pass);
     if ((status < 0) || ((size_t)status >= sizeof(credentials))) {
       ERROR("apache plugin: init_host: Returning an error "
             "because the credentials have been "
             "truncated.");
       curl_easy_cleanup(st->curl);
       st->curl = NULL;
-      return (-1);
+      return -1;
     }
 
     curl_easy_setopt(st->curl, CURLOPT_USERPWD, credentials);
 #endif
   }
 
-  curl_easy_setopt(st->curl, CURLOPT_URL, st->url);
   curl_easy_setopt(st->curl, CURLOPT_FOLLOWLOCATION, 1L);
   curl_easy_setopt(st->curl, CURLOPT_MAXREDIRS, 50L);
 
@@ -347,7 +330,7 @@ static int init_host(apache_t *st) /* {{{ */
                      (long)CDTIME_T_TO_MS(plugin_get_interval()));
 #endif
 
-  return (0);
+  return 0;
 } /* }}} int init_host */
 
 static void submit_value(const char *type, const char *type_instance,
@@ -483,36 +466,24 @@ static void submit_scoreboard(char *buf, apache_t *st) {
 
 static int apache_read_host(user_data_t *user_data) /* {{{ */
 {
-  char *ptr;
-  char *saveptr;
-  char *line;
-
-  char *fields[4];
-  int fields_num;
-
-  apache_t *st;
-
-  st = user_data->data;
-
-  int status;
-
-  char *content_type;
-  static const char *text_plain = "text/plain";
+  apache_t *st = user_data->data;
 
   assert(st->url != NULL);
   /* (Assured by `config_add') */
 
   if (st->curl == NULL) {
-    status = init_host(st);
-    if (status != 0)
-      return (-1);
+    if (init_host(st) != 0)
+      return -1;
   }
   assert(st->curl != NULL);
 
   st->apache_buffer_fill = 0;
+
+  curl_easy_setopt(st->curl, CURLOPT_URL, st->url);
+
   if (curl_easy_perform(st->curl) != CURLE_OK) {
     ERROR("apache: curl_easy_perform failed: %s", st->apache_curl_error);
-    return (-1);
+    return -1;
   }
 
   /* fallback - server_type to apache if not set at this time */
@@ -522,7 +493,10 @@ static int apache_read_host(user_data_t *user_data) /* {{{ */
     st->server_type = APACHE;
   }
 
-  status = curl_easy_getinfo(st->curl, CURLINFO_CONTENT_TYPE, &content_type);
+  char *content_type;
+  static const char *text_plain = "text/plain";
+  int status =
+      curl_easy_getinfo(st->curl, CURLINFO_CONTENT_TYPE, &content_type);
   if ((status == CURLE_OK) && (content_type != NULL) &&
       (strncasecmp(content_type, text_plain, strlen(text_plain)) != 0)) {
     WARNING("apache plugin: `Content-Type' response header is not `%s' "
@@ -531,11 +505,14 @@ static int apache_read_host(user_data_t *user_data) /* {{{ */
             text_plain, content_type);
   }
 
-  ptr = st->apache_buffer;
-  saveptr = NULL;
+  char *ptr = st->apache_buffer;
+  char *saveptr = NULL;
+  char *line;
   while ((line = strtok_r(ptr, "\n\r", &saveptr)) != NULL) {
     ptr = NULL;
-    fields_num = strsplit(line, fields, STATIC_ARRAY_SIZE(fields));
+    char *fields[4];
+
+    int fields_num = strsplit(line, fields, STATIC_ARRAY_SIZE(fields));
 
     if (fields_num == 3) {
       if ((strcmp(fields[0], "Total") == 0) &&
@@ -558,7 +535,7 @@ static int apache_read_host(user_data_t *user_data) /* {{{ */
 
   st->apache_buffer_fill = 0;
 
-  return (0);
+  return 0;
 } /* }}} int apache_read_host */
 
 static int apache_init(void) /* {{{ */
@@ -566,7 +543,7 @@ static int apache_init(void) /* {{{ */
   /* Call this while collectd is still single-threaded to avoid
    * initialization issues in libgcrypt. */
   curl_global_init(CURL_GLOBAL_SSL);
-  return (0);
+  return 0;
 } /* }}} int apache_init */
 
 void module_register(void) {