From: Wouter Wijngaards Date: Wed, 1 Dec 2010 09:59:39 +0000 (+0000) Subject: - Fix bug#338: print address when socket creation fails. X-Git-Tag: release-1.4.8rc1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9997255caa33e51817aae2c9b3f8dfe417ce0992;p=thirdparty%2Funbound.git - Fix bug#338: print address when socket creation fails. git-svn-id: file:///svn/unbound/trunk@2349 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index bedb5c27a..8711363a1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -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. diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index e9d5865b7..32d042466 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -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; }