[Midnightbsd-cvs] src [6480] trunk/contrib/mDNSResponder/mDNSPosix: fix ipv6 properties to avoid freakouts

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Dec 11 21:35:25 EST 2013


Revision: 6480
          http://svnweb.midnightbsd.org/src/?rev=6480
Author:   laffer1
Date:     2013-12-11 21:35:25 -0500 (Wed, 11 Dec 2013)
Log Message:
-----------
fix ipv6 properties to avoid freakouts

Modified Paths:
--------------
    trunk/contrib/mDNSResponder/mDNSPosix/mDNSPosix.c
    trunk/contrib/mDNSResponder/mDNSPosix/mDNSUNP.h

Modified: trunk/contrib/mDNSResponder/mDNSPosix/mDNSPosix.c
===================================================================
--- trunk/contrib/mDNSResponder/mDNSPosix/mDNSPosix.c	2013-12-12 02:35:03 UTC (rev 6479)
+++ trunk/contrib/mDNSResponder/mDNSPosix/mDNSPosix.c	2013-12-12 02:35:25 UTC (rev 6480)
@@ -514,6 +514,7 @@
             numOfServers++;
         }
     }
+    fclose(fp);
     return (numOfServers > 0) ? 0 : -1;
 }
 
@@ -719,9 +720,15 @@
     {
         struct ipv6_mreq imr6;
         struct sockaddr_in6 bindAddr6;
-    #if defined(IPV6_PKTINFO)
+    #if defined(IPV6_RECVPKTINFO)
         if (err == 0)
         {
+            err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_RECVPKTINFO, &kOn, sizeof(kOn));
+            if (err < 0) { err = errno; perror("setsockopt - IPV6_RECVPKTINFO"); }
+        }
+    #elif defined(IPV6_PKTINFO)
+        if (err == 0)
+        {
             err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_2292_PKTINFO, &kOn, sizeof(kOn));
             if (err < 0) { err = errno; perror("setsockopt - IPV6_PKTINFO"); }
         }
@@ -728,9 +735,15 @@
     #else
         #warning This platform has no way to get the destination interface information for IPv6 -- will only work for single-homed hosts
     #endif
-    #if defined(IPV6_HOPLIMIT)
+    #if defined(IPV6_RECVHOPLIMIT)
         if (err == 0)
         {
+            err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &kOn, sizeof(kOn));
+            if (err < 0) { err = errno; perror("setsockopt - IPV6_RECVHOPLIMIT"); }
+        }
+    #elif defined(IPV6_HOPLIMIT)
+        if (err == 0)
+        {
             err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_2292_HOPLIMIT, &kOn, sizeof(kOn));
             if (err < 0) { err = errno; perror("setsockopt - IPV6_HOPLIMIT"); }
         }

Modified: trunk/contrib/mDNSResponder/mDNSPosix/mDNSUNP.h
===================================================================
--- trunk/contrib/mDNSResponder/mDNSPosix/mDNSUNP.h	2013-12-12 02:35:03 UTC (rev 6479)
+++ trunk/contrib/mDNSResponder/mDNSPosix/mDNSUNP.h	2013-12-12 02:35:25 UTC (rev 6480)
@@ -25,14 +25,14 @@
 
 #ifdef HAVE_LINUX
 #include <linux/socket.h>
-#define IPV6_2292_PKTINFO  IPV6_2292PKTINFO
-#define IPV6_2292_HOPLIMIT IPV6_2292HOPLIMIT
+#define IPV6_2292_PKTINFO IPV6_PKTINFO
+#define IPV6_2292_HOPLIMIT IPV6_HOPLIMIT
 #else
 // The following are the supported non-linux posix OSes -
 // netbsd, freebsd and openbsd.
 #if HAVE_IPV6
-#define IPV6_2292_PKTINFO  19
-#define IPV6_2292_HOPLIMIT 20
+#define IPV6_2292_PKTINFO IPV6_PKTINFO
+#define IPV6_2292_HOPLIMIT IPV6_HOPLIMIT
 #endif
 #endif
 



More information about the Midnightbsd-cvs mailing list