diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index d9816200fa5a39b2f6b5a4c588039843221cca6b..8f5a60d081665a05485cc2144c8e30f453ef5291 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