X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fmemcached.c;h=b3321578894d7e3ffc49a4a7126143ff0e3d2b87;hb=9c98fa31ef50a6ff849d36cac4f5297faa6f7909;hp=b9c3cb0afd286c03b8d5e86dad4f7d11b2fdb43a;hpb=af19c6933f4908521566f8829f6e920eac8414de;p=collectd.git diff --git a/src/memcached.c b/src/memcached.c index b9c3cb0a..b3321578 100644 --- a/src/memcached.c +++ b/src/memcached.c @@ -1,8 +1,9 @@ /** * collectd - src/memcached.c, based on src/hddtemp.c - * Copyright (C) 2007 Antony Dovgal - * Copyright (C) 2005,2006 Vincent Stehlé - * Copyright (C) 2009 Franck Lombardi + * Copyright (C) 2007 Antony Dovgal + * Copyright (C) 2007-2009 Florian Forster + * Copyright (C) 2009 Doug MacEachern + * Copyright (C) 2009 Franck Lombardi * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -20,8 +21,8 @@ * * Authors: * Antony Dovgal - * Vincent Stehlé * Florian octo Forster + * Doug MacEachern * Franck Lombardi **/ @@ -62,29 +63,32 @@ static int memcached_query_daemon (char *buffer, int buffer_size) /* {{{ */ int i = 0; if (memcached_socket != NULL) { - struct sockaddr_un serv_addr; - memset(&serv_addr, '\0', sizeof (serv_addr)); + memset (&serv_addr, 0, sizeof (serv_addr)); serv_addr.sun_family = AF_UNIX; - strncpy(serv_addr.sun_path, memcached_socket, sizeof (serv_addr.sun_path)); + sstrncpy (serv_addr.sun_path, memcached_socket, + sizeof (serv_addr.sun_path)); /* create our socket descriptor */ - if ((fd = socket (AF_UNIX, SOCK_STREAM, 0)) < 0) { + fd = socket (AF_UNIX, SOCK_STREAM, 0); + if (fd < 0) { char errbuf[1024]; - ERROR ("memcached: unix socket: %s", sstrerror (errno, errbuf, sizeof (errbuf))); + ERROR ("memcached: unix socket: %s", sstrerror (errno, errbuf, + sizeof (errbuf))); return -1; } /* connect to the memcached daemon */ - if (connect (fd, (struct sockaddr *) &serv_addr, SUN_LEN(&serv_addr))) { - shutdown(fd, SHUT_RDWR); - close(fd); + status = (ssize_t) connect (fd, (struct sockaddr *) &serv_addr, + sizeof (serv_addr)); + if (status != 0) { + shutdown (fd, SHUT_RDWR); + close (fd); fd = -1; } - - } else { - + } + else { /* if (memcached_socket == NULL) */ const char *host; const char *port; @@ -111,7 +115,7 @@ static int memcached_query_daemon (char *buffer, int buffer_size) /* {{{ */ port = MEMCACHED_DEF_PORT; } - if ((ai_return = getaddrinfo (host, port, NULL, &ai_list)) != 0) { + if ((ai_return = getaddrinfo (host, port, &ai_hints, &ai_list)) != 0) { char errbuf[1024]; ERROR ("memcached: getaddrinfo (%s, %s): %s", host, port, @@ -124,16 +128,18 @@ static int memcached_query_daemon (char *buffer, int buffer_size) /* {{{ */ fd = -1; for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { /* create our socket descriptor */ - if ((fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol)) < 0) { + fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol); + if (fd < 0) { char errbuf[1024]; ERROR ("memcached: socket: %s", sstrerror (errno, errbuf, sizeof (errbuf))); continue; } /* connect to the memcached daemon */ - if (connect (fd, (struct sockaddr *) ai_ptr->ai_addr, ai_ptr->ai_addrlen)) { - shutdown(fd, SHUT_RDWR); - close(fd); + status = (ssize_t) connect (fd, (struct sockaddr *) ai_ptr->ai_addr, ai_ptr->ai_addrlen); + if (status != 0) { + shutdown (fd, SHUT_RDWR); + close (fd); fd = -1; continue; }