]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorMark Andrews <marka@isc.org>
Thu, 24 Jan 2002 23:22:25 +0000 (23:22 +0000)
committerMark Andrews <marka@isc.org>
Thu, 24 Jan 2002 23:22:25 +0000 (23:22 +0000)
1081.   [bug]           Multicast queries were incorrectly identified
                        based on the source address, not the destination
                        address.
(from JINMEI Tatuya)

CHANGES
lib/isc/unix/socket.c

diff --git a/CHANGES b/CHANGES
index 9261d61445093a7f43126431d0e9353c41e6c6e9..04263e89df9fdbe54e04e05edaf0ca71a46aa607 100644 (file)
--- 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]
 
 
 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]
 
index 523e34dd14c48e09190aa03f192ccb46beacf217..f7fd9798b737cfda8a93f1b20907286d5df1e34a 100644 (file)
@@ -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 <config.h>
 
@@ -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 */
-
 }
 
 /*