]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix bug#338: print address when socket creation fails.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 1 Dec 2010 09:59:39 +0000 (09:59 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 1 Dec 2010 09:59:39 +0000 (09:59 +0000)
git-svn-id: file:///svn/unbound/trunk@2349 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/listen_dnsport.c

index bedb5c27a3fbc51b333215af73e7f3ff60793575..8711363a19c7ba117e0a5dec451c943749b0e7f1 100644 (file)
@@ -1,3 +1,6 @@
+1 December 2010: Wouter
+       - Fix bug#338: print address when socket creation fails.
+
 30 November 2010: Wouter
        - Fix storage of EDNS failures in the infra cache.
        - iana portlist updated.
index e9d5865b732c0da4fbd6114af779adf6671e637f..32d042466b94712e1a855840291310f04bfd34b7 100644 (file)
@@ -343,15 +343,21 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                /* detect freebsd jail with no ipv6 permission */
                if(family==AF_INET6 && errno==EINVAL)
                        *noproto = 1;
-               else if(errno != EADDRINUSE)
+               else if(errno != EADDRINUSE) {
                        log_err("can't bind socket: %s", strerror(errno));
+                       log_addr(0, "failed address",
+                               (struct sockaddr_storage*)addr, addrlen);
+               }
 #endif /* EADDRINUSE */
                close(s);
 #else /* USE_WINSOCK */
                if(WSAGetLastError() != WSAEADDRINUSE &&
-                       WSAGetLastError() != WSAEADDRNOTAVAIL)
+                       WSAGetLastError() != WSAEADDRNOTAVAIL) {
                        log_err("can't bind socket: %s", 
                                wsa_strerror(WSAGetLastError()));
+                       log_addr(0, "failed address",
+                               (struct sockaddr_storage*)addr, addrlen);
+               }
                closesocket(s);
 #endif
                return -1;
@@ -431,10 +437,16 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto)
                /* detect freebsd jail with no ipv6 permission */
                if(addr->ai_family==AF_INET6 && errno==EINVAL)
                        *noproto = 1;
-               else log_err("can't bind socket: %s", strerror(errno));
+               else { log_err("can't bind socket: %s", strerror(errno));
+                      log_addr(0, "failed address",
+                               (struct sockaddr_storage*)addr->ai_addr,
+                               addr->ai_addrlen); }
 #else
                log_err("can't bind socket: %s", 
                        wsa_strerror(WSAGetLastError()));
+               log_addr(0, "failed address",
+                       (struct sockaddr_storage*)addr->ai_addr,
+                       addr->ai_addrlen); }
 #endif
                return -1;
        }