treewide: Use AF_UNSPEC consistently
[collectd.git] / src / write_sensu.c
index aae5d8b..63c6d99 100644 (file)
@@ -35,7 +35,6 @@
 #include <errno.h>
 #include <netdb.h>
 #include <inttypes.h>
-#include <pthread.h>
 #include <stddef.h>
 
 #include <stdlib.h>
@@ -105,25 +104,25 @@ static void free_str_list(struct str_list *strs) /* {{{ */
 static int sensu_connect(struct sensu_host *host) /* {{{ */
 {
        int                      e;
-       struct addrinfo         *ai, hints;
+       struct addrinfo         *ai;
        char const              *node;
        char const              *service;
 
        // Resolve the target if we haven't done already
        if (!(host->flags & F_READY)) {
-               memset(&hints, 0, sizeof(hints));
                memset(&service, 0, sizeof(service));
                host->res = NULL;
-               hints.ai_family = AF_INET;
-               hints.ai_socktype = SOCK_STREAM;
-#ifdef AI_ADDRCONFIG
-               hints.ai_flags |= AI_ADDRCONFIG;
-#endif
 
                node = (host->node != NULL) ? host->node : SENSU_HOST;
                service = (host->service != NULL) ? host->service : SENSU_PORT;
 
-               if ((e = getaddrinfo(node, service, &hints, &(host->res))) != 0) {
+               struct addrinfo ai_hints = {
+                       .ai_family = AF_INET,
+                       .ai_flags = AI_ADDRCONFIG,
+                       .ai_socktype = SOCK_STREAM
+               };
+
+               if ((e = getaddrinfo(node, service, &ai_hints, &(host->res))) != 0) {
                        ERROR("write_sensu plugin: Unable to resolve host \"%s\": %s",
                                        node, gai_strerror(e));
                        return -1;
@@ -177,7 +176,7 @@ static void sensu_close_socket(struct sensu_host *host) /* {{{ */
 static char *build_json_str_list(const char *tag, struct str_list const *list) /* {{{ */
 {
        int res;
-       char *ret_str;
+       char *ret_str = NULL;
        char *temp_str;
        int i;
        if (list->nb_strs == 0) {
@@ -192,6 +191,7 @@ static char *build_json_str_list(const char *tag, struct str_list const *list) /
        res = asprintf(&temp_str, "\"%s\": [\"%s\"", tag, list->strs[0]);
        if (res == -1) {
                ERROR("write_sensu plugin: Unable to alloc memory");
+               free(ret_str);
                return NULL;
        }
        for (i=1; i<list->nb_strs; i++) {
@@ -524,11 +524,10 @@ static char *replace_str(const char *str, const char *old, /* {{{ */
        } else
                retlen = strlen(str);
 
-       ret = malloc(retlen + 1);
+       ret = calloc(1, retlen + 1);
        if (ret == NULL)
                return NULL;
        // added to original: not optimized, but keeps valgrind happy.
-       memset(ret, 0, retlen + 1);
 
        r = ret;
        p = str;