From 6f9afac0a5af567c91c6b9682e37da1fa26bc6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 17 Nov 2017 02:11:05 +0100 Subject: [PATCH] dhtrunner: cleanup --- src/dhtrunner.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index d9816200..8f5a60d0 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -378,25 +378,22 @@ int bindSocket(const SockAddr& addr, SockAddr& bound) { bool is_ipv6 = addr.getFamily() == AF_INET6; int sock = socket(is_ipv6 ? PF_INET6 : PF_INET, SOCK_DGRAM, 0); - if (sock >= 0) { - int set = 1; + if (sock < 0) + throw DhtException(std::string("Can't open socket: ") + strerror(sock)); + int set = 1; #ifdef SO_NOSIGPIPE - setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(set)); + setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(set)); #endif - if (is_ipv6) - setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&set, sizeof(set)); - int rc = bind(sock, addr.get(), addr.getLength()); - if(rc < 0) - throw DhtException("Can't bind socket on " + addr.toString() + " " + strerror(rc)); - sockaddr_storage ss; - socklen_t ss_len = sizeof(ss); - getsockname(sock, (sockaddr*)&ss, &ss_len); - bound = {ss, ss_len}; - return sock; - } else { - throw DhtException(std::string("Can't open socket: ") + strerror(sock)); - } - return -1; + if (is_ipv6) + setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&set, sizeof(set)); + int rc = bind(sock, addr.get(), addr.getLength()); + if(rc < 0) + throw DhtException("Can't bind socket on " + addr.toString() + " " + strerror(rc)); + sockaddr_storage ss; + socklen_t ss_len = sizeof(ss); + getsockname(sock, (sockaddr*)&ss, &ss_len); + bound = {ss, ss_len}; + return sock; } void -- GitLab