X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flibcollectdclient%2Fnetwork.c;h=7a866ee78c377408ff7187766eaf1061a9c2bdf5;hb=090e054043f6d93b374dee20d766c4f906acd43a;hp=7b98497c5fb8a6082c384e5a20d971b423963899;hpb=40aabf444e124f40603021821e98bcc40c4aaa0e;p=collectd.git diff --git a/src/libcollectdclient/network.c b/src/libcollectdclient/network.c index 7b98497c..7a866ee7 100644 --- a/src/libcollectdclient/network.c +++ b/src/libcollectdclient/network.c @@ -149,7 +149,6 @@ static int server_open_socket (lcc_server_t *srv) /* {{{ */ if (ai_ptr->ai_family == AF_INET) { - struct sockaddr_in *addr = (struct sockaddr_in *) ai_ptr->ai_addr; int optname; @@ -158,9 +157,8 @@ static int server_open_socket (lcc_server_t *srv) /* {{{ */ else optname = IP_TTL; - setsockopt (srv->fd, IPPROTO_IP, optname, - &srv->ttl, - sizeof (srv->ttl)); + status = setsockopt (srv->fd, IPPROTO_IP, optname, + &srv->ttl, sizeof (srv->ttl)); } else if (ai_ptr->ai_family == AF_INET6) { @@ -173,9 +171,15 @@ static int server_open_socket (lcc_server_t *srv) /* {{{ */ else optname = IPV6_UNICAST_HOPS; - setsockopt (srv->fd, IPPROTO_IPV6, optname, - &srv->ttl, - sizeof (srv->ttl)); + status = setsockopt (srv->fd, IPPROTO_IPV6, optname, + &srv->ttl, sizeof (srv->ttl)); + } + if (status != 0) + { + /* setsockopt failed. */ + close (srv->fd); + srv->fd = -1; + continue; } srv->sa = malloc (ai_ptr->ai_addrlen);