X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgmond.c;h=53cdcbf519150913b9d906fbb5f122a3e302b613;hb=95dcf60c822e4ab92c0dd1a7ff6cba73bc55bcd1;hp=1aa95d5738aa42dc097d1039d6735cb436b2d98b;hpb=2df75b141dc7474a72ce949bd0ce1ca5739e6fef;p=collectd.git diff --git a/src/gmond.c b/src/gmond.c index 1aa95d57..53cdcbf5 100644 --- a/src/gmond.c +++ b/src/gmond.c @@ -30,9 +30,6 @@ #include "configfile.h" #include "utils_avltree.h" -#if HAVE_PTHREAD_H -# include -#endif #if HAVE_NETDB_H # include #endif @@ -323,14 +320,27 @@ static int create_sockets (socket_entry_t **ret_sockets, /* {{{ */ } loop = 1; - setsockopt (sockets[sockets_num].fd, IPPROTO_IP, IP_MULTICAST_LOOP, + status = setsockopt (sockets[sockets_num].fd, IPPROTO_IP, IP_MULTICAST_LOOP, (void *) &loop, sizeof (loop)); + if (status != 0) + { + char errbuf[1024]; + WARNING ("gmond plugin: setsockopt(2) failed: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); + } memset (&mreq, 0, sizeof (mreq)); mreq.imr_multiaddr.s_addr = addr->sin_addr.s_addr; mreq.imr_interface.s_addr = htonl (INADDR_ANY); - setsockopt (sockets[sockets_num].fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + + status = setsockopt (sockets[sockets_num].fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void *) &mreq, sizeof (mreq)); + if (status != 0) + { + char errbuf[1024]; + WARNING ("gmond plugin: setsockopt(2) failed: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); + } } /* if (ai_ptr->ai_family == AF_INET) */ else if (ai_ptr->ai_family == AF_INET6) { @@ -347,15 +357,27 @@ static int create_sockets (socket_entry_t **ret_sockets, /* {{{ */ } loop = 1; - setsockopt (sockets[sockets_num].fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, + status = setsockopt (sockets[sockets_num].fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, (void *) &loop, sizeof (loop)); + if (status != 0) + { + char errbuf[1024]; + WARNING ("gmond plugin: setsockopt(2) failed: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); + } memset (&mreq, 0, sizeof (mreq)); memcpy (&mreq.ipv6mr_multiaddr, &addr->sin6_addr, sizeof (addr->sin6_addr)); mreq.ipv6mr_interface = 0; /* any */ - setsockopt (sockets[sockets_num].fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, + status = setsockopt (sockets[sockets_num].fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, (void *) &mreq, sizeof (mreq)); + if (status != 0) + { + char errbuf[1024]; + WARNING ("gmond plugin: setsockopt(2) failed: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); + } } /* if (ai_ptr->ai_family == AF_INET6) */ sockets_num++;