From 8a044e464b5e37d6faeb95457f7274ab2d65a59f Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 24 Jan 2002 23:22:25 +0000 Subject: [PATCH] pullup: 1081. [bug] Multicast queries were incorrectly identified based on the source address, not the destination address. (from JINMEI Tatuya) --- CHANGES | 10 +++++++--- lib/isc/unix/socket.c | 16 ++++------------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/CHANGES b/CHANGES index 9261d61445..04263e89df 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,3 @@ -1072. [bug] The TCP client quota could be exceeded when - recursion occurred. [RT #1937] - 1191. [bug] A dynamic update removing the last non-apex name in a secure zone would fail. [RT #2399] @@ -103,6 +100,13 @@ 1109. [bug] nsupdate accepted illegal ttl values. +1081. [bug] Multicast queries were incorrectly identified + based on the source address, not the destination + address. + +1072. [bug] The TCP client quota could be exceeded when + recursion occurred. [RT #1937] + 1071. [bug] Sockets listening for TCP DNS connections specified an excessive listen backlog. [RT #1937] diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 523e34dd14..f7fd9798b7 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.207.2.7 2002/01/23 02:35:56 gson Exp $ */ +/* $Id: socket.c,v 1.207.2.8 2002/01/24 23:22:25 marka Exp $ */ #include @@ -497,10 +497,7 @@ process_cmsg(isc_socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) { UNUSED(msg); UNUSED(dev); -#ifndef ISC_NET_BSD44MSGHDR - return; - -#else /* defined ISC_NET_BSD44MSGHDR */ +#ifdef ISC_NET_BSD44MSGHDR #ifdef MSG_TRUNC if ((msg->msg_flags & MSG_TRUNC) == MSG_TRUNC) @@ -512,12 +509,6 @@ process_cmsg(isc_socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) { dev->attributes |= ISC_SOCKEVENTATTR_CTRUNC; #endif - /* - * Check for multicast. - */ - if (isc_sockaddr_ismulticast(&dev->address)) - dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST; - #ifndef USE_CMSG return; #else @@ -550,6 +541,8 @@ process_cmsg(isc_socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) { ISC_MSG_IFRECEIVED, "interface received on ifindex %u", dev->pktinfo.ipi6_ifindex); + if (IN6_IS_ADDR_MULTICAST(&pktinfop->ipi6_addr)) + dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST; goto next; } #endif @@ -571,7 +564,6 @@ process_cmsg(isc_socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) { #endif /* USE_CMSG */ #endif /* ISC_NET_BSD44MSGHDR */ - } /*