X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fpinba.c;h=8a0902aa9c0136a0b6b4dce87498bd55f67b087e;hb=3d74a63ae43c1786eb9b966e2209c24c5643dae8;hp=e94ad8f61b667b0728085bff1c5a7129f9dcd802;hpb=2bda2a5648c87a2c5b8304238cd80ff17984c5cd;p=collectd.git diff --git a/src/pinba.c b/src/pinba.c index e94ad8f6..8a0902aa 100644 --- a/src/pinba.c +++ b/src/pinba.c @@ -24,12 +24,10 @@ **/ #include "collectd.h" + #include "common.h" #include "plugin.h" -#include "configfile.h" -#include -#include #include #include @@ -172,7 +170,7 @@ static void service_statnode_add(const char *name, /* {{{ */ const char *script) { pinba_statnode_t *node; - + node = realloc (stat_nodes, sizeof (*stat_nodes) * (stat_nodes_num + 1)); if (node == NULL) @@ -184,7 +182,7 @@ static void service_statnode_add(const char *name, /* {{{ */ node = stat_nodes + stat_nodes_num; memset (node, 0, sizeof (*node)); - + /* reset strings */ node->name = NULL; node->host = NULL; @@ -192,13 +190,13 @@ static void service_statnode_add(const char *name, /* {{{ */ node->script = NULL; node->mem_peak = NAN; - + /* fill query data */ strset (&node->name, name); strset (&node->host, host); strset (&node->server, server); strset (&node->script, script); - + /* increment counter */ stat_nodes_num++; } /* }}} void service_statnode_add */ @@ -210,14 +208,14 @@ static unsigned int service_statnode_collect (pinba_statnode_t *res, /* {{{ */ unsigned int index) { pinba_statnode_t *node; - + if (stat_nodes_num == 0) return 0; - + /* begin collecting */ if (index == 0) pthread_mutex_lock (&stat_nodes_lock); - + /* end collecting */ if (index >= stat_nodes_num) { @@ -230,7 +228,7 @@ static unsigned int service_statnode_collect (pinba_statnode_t *res, /* {{{ */ /* reset node */ node->mem_peak = NAN; - + return (index + 1); } /* }}} unsigned int service_statnode_collect */ @@ -253,11 +251,9 @@ static void service_statnode_process (pinba_statnode_t *node, /* {{{ */ static void service_process_request (Pinba__Request *request) /* {{{ */ { - unsigned int i; - pthread_mutex_lock (&stat_nodes_lock); - - for (i = 0; i < stat_nodes_num; i++) + + for (unsigned int i = 0; i < stat_nodes_num; i++) { if ((stat_nodes[i].host != NULL) && (strcmp (request->hostname, stat_nodes[i].host) != 0)) @@ -273,7 +269,7 @@ static void service_process_request (Pinba__Request *request) /* {{{ */ service_statnode_process(&stat_nodes[i], request); } - + pthread_mutex_unlock(&stat_nodes_lock); } /* }}} void service_process_request */ @@ -353,25 +349,20 @@ static pinba_socket_t *pinba_socket_open (const char *node, /* {{{ */ { pinba_socket_t *s; struct addrinfo *ai_list; - struct addrinfo *ai_ptr; - struct addrinfo ai_hints; int status; - memset (&ai_hints, 0, sizeof (ai_hints)); - ai_hints.ai_flags = AI_PASSIVE; - ai_hints.ai_family = AF_UNSPEC; - ai_hints.ai_socktype = SOCK_DGRAM; - ai_hints.ai_addr = NULL; - ai_hints.ai_canonname = NULL; - ai_hints.ai_next = NULL; - if (node == NULL) node = PINBA_DEFAULT_NODE; if (service == NULL) service = PINBA_DEFAULT_SERVICE; - ai_list = NULL; + struct addrinfo ai_hints = { + .ai_family = AF_UNSPEC, + .ai_flags = AI_PASSIVE, + .ai_socktype = SOCK_DGRAM + }; + status = getaddrinfo (node, service, &ai_hints, &ai_list); if (status != 0) @@ -382,22 +373,21 @@ static pinba_socket_t *pinba_socket_open (const char *node, /* {{{ */ } assert (ai_list != NULL); - s = malloc (sizeof (*s)); + s = calloc (1, sizeof (*s)); if (s == NULL) { freeaddrinfo (ai_list); - ERROR ("pinba plugin: malloc failed."); + ERROR ("pinba plugin: calloc failed."); return (NULL); } - memset (s, 0, sizeof (*s)); - for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) + for (struct addrinfo *ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { status = pb_add_socket (s, ai_ptr); if (status != 0) break; } /* for (ai_list) */ - + freeaddrinfo (ai_list); if (s->fd_num < 1) @@ -412,35 +402,33 @@ static pinba_socket_t *pinba_socket_open (const char *node, /* {{{ */ static void pinba_socket_free (pinba_socket_t *socket) /* {{{ */ { - nfds_t i; - if (!socket) return; - - for (i = 0; i < socket->fd_num; i++) + + for (nfds_t i = 0; i < socket->fd_num; i++) { if (socket->fd[i].fd < 0) continue; close (socket->fd[i].fd); socket->fd[i].fd = -1; } - + sfree(socket); } /* }}} void pinba_socket_free */ static int pinba_process_stats_packet (const uint8_t *buffer, /* {{{ */ size_t buffer_size) { - Pinba__Request *request; - + Pinba__Request *request; + request = pinba__request__unpack (NULL, buffer_size, buffer); - + if (!request) return (-1); service_process_request(request); pinba__request__free_unpacked (request, NULL); - + return (0); } /* }}} int pinba_process_stats_packet */ @@ -508,7 +496,6 @@ static int receive_loop (void) /* {{{ */ while (!collector_thread_do_shutdown) { int status; - nfds_t i; if (s->fd_num < 1) break; @@ -531,7 +518,7 @@ static int receive_loop (void) /* {{{ */ return (-1); } - for (i = 0; i < s->fd_num; i++) + for (nfds_t i = 0; i < s->fd_num; i++) { if (s->fd[i].revents & (POLLERR | POLLHUP | POLLNVAL)) { @@ -571,13 +558,12 @@ static int pinba_config_view (const oconfig_item_t *ci) /* {{{ */ char *server = NULL; char *script = NULL; int status; - int i; status = cf_util_get_string (ci, &name); if (status != 0) return (status); - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; @@ -610,13 +596,11 @@ static int pinba_config_view (const oconfig_item_t *ci) /* {{{ */ static int plugin_config (oconfig_item_t *ci) /* {{{ */ { - int i; - /* The lock should not be necessary in the config callback, but let's be * sure.. */ pthread_mutex_lock (&stat_nodes_lock); - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; @@ -631,7 +615,7 @@ static int plugin_config (oconfig_item_t *ci) /* {{{ */ } pthread_mutex_unlock(&stat_nodes_lock); - + return (0); } /* }}} int pinba_config */ @@ -695,7 +679,7 @@ static int plugin_submit (const pinba_statnode_t *res) /* {{{ */ { value_t value; value_list_t vl = VALUE_LIST_INIT; - + vl.values = &value; vl.values_len = 1; sstrncpy (vl.host, hostname_g, sizeof (vl.host)); @@ -703,15 +687,15 @@ static int plugin_submit (const pinba_statnode_t *res) /* {{{ */ sstrncpy (vl.plugin_instance, res->name, sizeof (vl.plugin_instance)); value.derive = res->req_count; - sstrncpy (vl.type, "total_requests", sizeof (vl.type)); + sstrncpy (vl.type, "total_requests", sizeof (vl.type)); plugin_dispatch_values (&vl); value.derive = float_counter_get (&res->req_time, /* factor = */ 1000); - sstrncpy (vl.type, "total_time_in_ms", sizeof (vl.type)); + sstrncpy (vl.type, "total_time_in_ms", sizeof (vl.type)); plugin_dispatch_values (&vl); value.derive = res->doc_size; - sstrncpy (vl.type, "total_bytes", sizeof (vl.type)); + sstrncpy (vl.type, "total_bytes", sizeof (vl.type)); plugin_dispatch_values (&vl); value.derive = float_counter_get (&res->ru_utime, /* factor = */ 100); @@ -736,12 +720,12 @@ static int plugin_read (void) /* {{{ */ { unsigned int i=0; pinba_statnode_t data; - + while ((i = service_statnode_collect (&data, i)) != 0) { plugin_submit (&data); } - + return 0; } /* }}} int plugin_read */