From: Mark Andrews Date: Wed, 19 Sep 2001 02:36:34 +0000 (+0000) Subject: pullup: X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6970aaed8cbe484fa77f093007f75a57f3f4e26a;p=thirdparty%2Fbind9.git pullup: 1004. [port] Deal with recvfrom() returning EHOSTDOWN. [RT #1770] --- diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index a647a1735ba..41327fdcab1 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.c,v 1.178.2.7 2001/04/27 21:59:31 gson Exp $ */ +/* $Id: socket.c,v 1.178.2.8 2001/09/19 02:36:34 marka Exp $ */ #include @@ -610,6 +610,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev, msg->msg_controllen = 0; msg->msg_flags = 0; #if defined(USE_CMSG) +#ifdef ISC_PLATFORM_HAVEIPV6 if ((sock->type == isc_sockettype_udp) && ((dev->attributes & ISC_SOCKEVENTATTR_PKTINFO) != 0)) { struct cmsghdr *cmsgp; @@ -630,6 +631,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev, pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp); memcpy(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo)); } +#endif #endif /* USE_CMSG */ #else /* ISC_NET_BSD44MSGHDR */ msg->msg_accrights = NULL; @@ -864,6 +866,7 @@ doio_recv(isc_socket_t *sock, isc_socketevent_t *dev) { SOFT_OR_HARD(ECONNREFUSED, ISC_R_CONNREFUSED); SOFT_OR_HARD(ENETUNREACH, ISC_R_NETUNREACH); SOFT_OR_HARD(EHOSTUNREACH, ISC_R_HOSTUNREACH); + SOFT_OR_HARD(EHOSTDOWN, ISC_R_HOSTDOWN); ALWAYS_HARD(ENOBUFS, ISC_R_NORESOURCES); #undef SOFT_OR_HARD