Merge branch 'collectd-5.8'
authorPavel Rochnyack <pavel2000@ngs.ru>
Thu, 14 Dec 2017 16:38:05 +0000 (23:38 +0700)
committerPavel Rochnyack <pavel2000@ngs.ru>
Thu, 14 Dec 2017 16:38:05 +0000 (23:38 +0700)
1  2 
src/df.c
src/memcached.c

diff --combined src/df.c
+++ b/src/df.c
@@@ -152,6 -152,7 +152,7 @@@ static int df_read(void) 
  #elif HAVE_STATFS
    struct statfs statbuf;
  #endif
+   int retval = 0;
    /* struct STATANYFS statbuf; */
    cu_mount_t *mnt_list;
  
        continue;
  
      if (STATANYFS(mnt_ptr->dir, &statbuf) < 0) {
 -      char errbuf[1024];
 -      ERROR(STATANYFS_STR "(%s) failed: %s", mnt_ptr->dir,
 -            sstrerror(errno, errbuf, sizeof(errbuf)));
 +      ERROR(STATANYFS_STR "(%s) failed: %s", mnt_ptr->dir, STRERRNO);
        continue;
      }
  
              (gauge_t)((float_t)(blk_reserved) / statbuf.f_blocks * 100));
          df_submit_one(disk_name, "percent_bytes", "used",
                        (gauge_t)((float_t)(blk_used) / statbuf.f_blocks * 100));
-       } else
-         return -1;
+       } else {
+         retval = -1;
+         break;
+       }
      }
  
      /* inode handling */
            df_submit_one(
                disk_name, "percent_inodes", "used",
                (gauge_t)((float_t)(inode_used) / statbuf.f_files * 100));
-         } else
-           return -1;
+         } else {
+           retval = -1;
+           break;
+         }
        }
        if (values_absolute) {
          df_submit_one(disk_name, "df_inodes", "free", (gauge_t)inode_free);
  
    cu_mount_freelist(mnt_list);
  
-   return 0;
+   return retval;
  } /* int df_read */
  
  void module_register(void) {
diff --combined src/memcached.c
@@@ -99,8 -99,9 +99,8 @@@ static int memcached_connect_unix(memca
    /* create our socket descriptor */
    int fd = socket(AF_UNIX, SOCK_STREAM, 0);
    if (fd < 0) {
 -    char errbuf[1024];
      ERROR("memcached plugin: memcached_connect_unix: socket(2) failed: %s",
 -          sstrerror(errno, errbuf, sizeof(errbuf)));
 +          STRERRNO);
      return -1;
    }
  
@@@ -133,10 -134,12 +133,10 @@@ static int memcached_connect_inet(memca
  
    int status = getaddrinfo(st->connhost, st->connport, &ai_hints, &ai_list);
    if (status != 0) {
 -    char errbuf[1024];
      ERROR("memcached plugin: memcached_connect_inet: "
            "getaddrinfo(%s,%s) failed: %s",
            st->connhost, st->connport,
 -          (status == EAI_SYSTEM) ? sstrerror(errno, errbuf, sizeof(errbuf))
 -                                 : gai_strerror(status));
 +          (status == EAI_SYSTEM) ? STRERRNO : gai_strerror(status));
      return -1;
    }
  
      /* create our socket descriptor */
      fd = socket(ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol);
      if (fd < 0) {
 -      char errbuf[1024];
        WARNING("memcached plugin: memcached_connect_inet: "
                "socket(2) failed: %s",
 -              sstrerror(errno, errbuf, sizeof(errbuf)));
 +              STRERRNO);
        continue;
      }
  
@@@ -242,8 -246,9 +242,8 @@@ static int memcached_query_daemon(char 
  
    status = (int)swrite(st->fd, "stats\r\n", strlen("stats\r\n"));
    if (status != 0) {
 -    char errbuf[1024];
      ERROR("memcached plugin: Instance \"%s\": write(2) failed: %s", st->name,
 -          sstrerror(errno, errbuf, sizeof(errbuf)));
 +          STRERRNO);
      shutdown(st->fd, SHUT_RDWR);
      close(st->fd);
      st->fd = -1;
  
      char const end_token[5] = {'E', 'N', 'D', '\r', '\n'};
      if (status < 0) {
 -      char errbuf[1024];
  
        if ((errno == EAGAIN) || (errno == EWOULDBLOCK))
          continue;
  
        ERROR("memcached plugin: Instance \"%s\": Error reading from socket: %s",
 -            st->name, sstrerror(errno, errbuf, sizeof(errbuf)));
 +            st->name, STRERRNO);
        shutdown(st->fd, SHUT_RDWR);
        close(st->fd);
        st->fd = -1;
        return -1;
+     } else if (status == 0) {
+       ERROR("memcached plugin: Instance \"%s\": Connection closed by peer",
+             st->name);
+       close(st->fd);
+       st->fd = -1;
+       return -1;
      }
  
      buffer_fill += (size_t)status;