X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flibcollectdclient%2Fclient.c;h=1c118e3c621ac7d51efb20a12d801308d3818bdb;hb=2761915bed8c6caea41018be3e675aa712cc0b0a;hp=77819c217b6e8ae1272415974f88480ab17710b0;hpb=5c2993e4121feae745551be182221b31bc23ff97;p=collectd.git diff --git a/src/libcollectdclient/client.c b/src/libcollectdclient/client.c index 77819c21..1c118e3c 100644 --- a/src/libcollectdclient/client.c +++ b/src/libcollectdclient/client.c @@ -235,12 +235,10 @@ static void lcc_chomp (char *str) /* {{{ */ static void lcc_response_free (lcc_response_t *res) /* {{{ */ { - size_t i; - if (res == NULL) return; - for (i = 0; i < res->lines_num; i++) + for (size_t i = 0; i < res->lines_num; i++) free (res->lines[i]); free (res->lines); res->lines = NULL; @@ -266,13 +264,11 @@ static int lcc_send (lcc_connection_t *c, const char *command) /* {{{ */ static int lcc_receive (lcc_connection_t *c, /* {{{ */ lcc_response_t *ret_res) { - lcc_response_t res; + lcc_response_t res = { 0 }; char *ptr; char buffer[4096]; size_t i; - memset (&res, 0, sizeof (res)); - /* Read the first line, containing the status and a message */ ptr = fgets (buffer, sizeof (buffer), c->fh); if (ptr == NULL) @@ -312,7 +308,7 @@ static int lcc_receive (lcc_connection_t *c, /* {{{ */ /* Allocate space for the char-pointers */ res.lines_num = (size_t) res.status; res.status = 0; - res.lines = (char **) malloc (res.lines_num * sizeof (char *)); + res.lines = malloc (res.lines_num * sizeof (*res.lines)); if (res.lines == NULL) { lcc_set_errno (c, ENOMEM); @@ -358,7 +354,7 @@ static int lcc_receive (lcc_connection_t *c, /* {{{ */ static int lcc_sendreceive (lcc_connection_t *c, /* {{{ */ const char *command, lcc_response_t *ret_res) { - lcc_response_t res; + lcc_response_t res = { 0 }; int status; if (c->fh == NULL) @@ -371,7 +367,6 @@ static int lcc_sendreceive (lcc_connection_t *c, /* {{{ */ if (status != 0) return (status); - memset (&res, 0, sizeof (res)); status = lcc_receive (c, &res); if (status == 0) memcpy (ret_res, &res, sizeof (*ret_res)); @@ -381,7 +376,7 @@ static int lcc_sendreceive (lcc_connection_t *c, /* {{{ */ static int lcc_open_unixsocket (lcc_connection_t *c, const char *path) /* {{{ */ { - struct sockaddr_un sa; + struct sockaddr_un sa = { 0 }; int fd; int status; @@ -398,7 +393,6 @@ static int lcc_open_unixsocket (lcc_connection_t *c, const char *path) /* {{{ */ return (-1); } - memset (&sa, 0, sizeof (sa)); sa.sun_family = AF_UNIX; strncpy (sa.sun_path, path, sizeof (sa.sun_path) - 1); @@ -424,9 +418,7 @@ static int lcc_open_unixsocket (lcc_connection_t *c, const char *path) /* {{{ */ static int lcc_open_netsocket (lcc_connection_t *c, /* {{{ */ const char *addr_orig) { - struct addrinfo ai_hints; struct addrinfo *ai_res; - struct addrinfo *ai_ptr; char addr_copy[NI_MAXHOST]; char *addr; char *port; @@ -441,14 +433,6 @@ static int lcc_open_netsocket (lcc_connection_t *c, /* {{{ */ addr_copy[sizeof(addr_copy) - 1] = '\0'; addr = addr_copy; - memset (&ai_hints, 0, sizeof (ai_hints)); - ai_hints.ai_flags = 0; -#ifdef AI_ADDRCONFIG - ai_hints.ai_flags |= AI_ADDRCONFIG; -#endif - ai_hints.ai_family = AF_UNSPEC; - ai_hints.ai_socktype = SOCK_STREAM; - port = NULL; if (*addr == '[') /* IPv6+port format */ { @@ -484,7 +468,12 @@ static int lcc_open_netsocket (lcc_connection_t *c, /* {{{ */ } } - ai_res = NULL; + struct addrinfo ai_hints = { + .ai_family = AF_UNSPEC, + .ai_flags = AI_ADDRCONFIG, + .ai_socktype = SOCK_STREAM + }; + status = getaddrinfo (addr, port == NULL ? LCC_DEFAULT_PORT : port, &ai_hints, &ai_res); @@ -494,7 +483,7 @@ static int lcc_open_netsocket (lcc_connection_t *c, /* {{{ */ return (-1); } - for (ai_ptr = ai_res; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) + for (struct addrinfo *ai_ptr = ai_res; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol); if (fd < 0) @@ -584,10 +573,9 @@ int lcc_connect (const char *address, lcc_connection_t **ret_con) /* {{{ */ if (ret_con == NULL) return (-1); - c = (lcc_connection_t *) malloc (sizeof (*c)); + c = calloc (1, sizeof (*c)); if (c == NULL) return (-1); - memset (c, 0, sizeof (*c)); status = lcc_open_socket (c, address); if (status != 0) @@ -687,14 +675,14 @@ int lcc_getval (lcc_connection_t *c, lcc_identifier_t *ident, /* {{{ */ /* Allocate space for the values */ if (ret_values != NULL) { - values = (gauge_t *) malloc (values_num * sizeof (*values)); + values = malloc (values_num * sizeof (*values)); if (values == NULL) BAIL_OUT (ENOMEM); } if (ret_values_names != NULL) { - values_names = (char **) calloc (values_num, sizeof (*values_names)); + values_names = calloc (values_num, sizeof (*values_names)); if (values_names == NULL) BAIL_OUT (ENOMEM); } @@ -750,7 +738,6 @@ int lcc_putval (lcc_connection_t *c, const lcc_value_list_t *vl) /* {{{ */ char command[1024] = ""; lcc_response_t res; int status; - size_t i; if ((c == NULL) || (vl == NULL) || (vl->values_len < 1) || (vl->values == NULL) || (vl->values_types == NULL)) @@ -775,7 +762,7 @@ int lcc_putval (lcc_connection_t *c, const lcc_value_list_t *vl) /* {{{ */ else SSTRCAT (command, " N"); - for (i = 0; i < vl->values_len; i++) + for (size_t i = 0; i < vl->values_len; i++) { if (vl->values_types[i] == LCC_TYPE_COUNTER) SSTRCATF (command, ":%"PRIu64, vl->values[i].counter); @@ -867,7 +854,6 @@ int lcc_listval (lcc_connection_t *c, /* {{{ */ lcc_identifier_t **ret_ident, size_t *ret_ident_num) { lcc_response_t res; - size_t i; int status; lcc_identifier_t *ident; @@ -894,7 +880,7 @@ int lcc_listval (lcc_connection_t *c, /* {{{ */ } ident_num = res.lines_num; - ident = (lcc_identifier_t *) malloc (ident_num * sizeof (*ident)); + ident = malloc (ident_num * sizeof (*ident)); if (ident == NULL) { lcc_response_free (&res); @@ -902,7 +888,7 @@ int lcc_listval (lcc_connection_t *c, /* {{{ */ return (-1); } - for (i = 0; i < res.lines_num; i++) + for (size_t i = 0; i < res.lines_num; i++) { char *time_str; char *ident_str; @@ -1063,9 +1049,11 @@ int lcc_string_to_identifier (lcc_connection_t *c, /* {{{ */ return (0); } /* }}} int lcc_string_to_identifier */ -int lcc_identifier_compare (const lcc_identifier_t *i0, /* {{{ */ - const lcc_identifier_t *i1) +int lcc_identifier_compare (const void *a, /* {{{ */ + const void *b) { + const lcc_identifier_t *i0 = a; + const lcc_identifier_t *i1 = b; int status; if ((i0 == NULL) && (i1 == NULL)) @@ -1102,7 +1090,7 @@ int lcc_sort_identifiers (lcc_connection_t *c, /* {{{ */ } qsort (idents, idents_num, sizeof (*idents), - (void *) lcc_identifier_compare); + lcc_identifier_compare); return (0); } /* }}} int lcc_sort_identifiers */