#include "common.h"
#include "configfile.h"
#include "utils_avltree.h"
-#include "utils_complain.h"
#include "utils_latency.h"
-#include <pthread.h>
-
#include <sys/types.h>
#include <netdb.h>
#include <poll.h>
return (NULL);
}
- metric = malloc (sizeof (*metric));
+ metric = calloc (1, sizeof (*metric));
if (metric == NULL)
{
- ERROR ("statsd plugin: malloc failed.");
+ ERROR ("statsd plugin: calloc failed.");
sfree (key_copy);
return (NULL);
}
- memset (metric, 0, sizeof (*metric));
metric->type = type;
metric->latency = NULL;
/* Make sure metric->set exists. */
if (metric->set == NULL)
- metric->set = c_avl_create ((void *) strcmp);
+ metric->set = c_avl_create ((int (*) (const void *, const void *)) strcmp);
if (metric->set == NULL)
{
struct pollfd *fds = NULL;
size_t fds_num = 0;
- struct addrinfo ai_hints;
- struct addrinfo *ai_list = NULL;
+ struct addrinfo *ai_list;
struct addrinfo *ai_ptr;
int status;
char const *service = (conf_service != NULL)
? conf_service : STATSD_DEFAULT_SERVICE;
- memset (&ai_hints, 0, sizeof (ai_hints));
- ai_hints.ai_flags = AI_PASSIVE;
-#ifdef AI_ADDRCONFIG
- ai_hints.ai_flags |= AI_ADDRCONFIG;
-#endif
- ai_hints.ai_family = AF_UNSPEC;
- ai_hints.ai_socktype = SOCK_DGRAM;
+ struct addrinfo ai_hints = {
+ .ai_family = AF_UNSPEC,
+ .ai_flags = AI_PASSIVE | AI_ADDRCONFIG,
+ .ai_socktype = SOCK_DGRAM
+ };
status = getaddrinfo (node, service, &ai_hints, &ai_list);
if (status != 0)
{
pthread_mutex_lock (&metrics_lock);
if (metrics_tree == NULL)
- metrics_tree = c_avl_create ((void *) strcmp);
+ metrics_tree = c_avl_create ((int (*) (const void *, const void *)) strcmp);
if (!network_thread_running)
{
void *key;
void *value;
- pthread_mutex_lock (&metrics_lock);
-
if (network_thread_running)
{
network_thread_shutdown = 1;
}
network_thread_running = 0;
+ pthread_mutex_lock (&metrics_lock);
+
while (c_avl_pick (metrics_tree, &key, &value) == 0)
{
sfree (key);