]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Check if struct in6_pktinfo is usable
authorMiroslav Lichvar <mlichvar@redhat.com>
Thu, 5 Jan 2012 14:11:54 +0000 (15:11 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Thu, 5 Jan 2012 14:11:54 +0000 (15:11 +0100)
configure
ntp_io.c

index 9ec0dbd5bae5dbd92b139edee742e22779ce8a84..c9c0a567e79d04995d76442b6a341cbcf4b2ba58 100755 (executable)
--- a/configure
+++ b/configure
@@ -373,13 +373,16 @@ if [ $feat_ipv6 = "1" ] && \
     return !inet_ntop(AF_INET6, &n.sin6_addr.s6_addr, p, sizeof(p));'
 then
   add_def HAVE_IPV6
-  if test_code 'in6_pktinfo' 'sys/socket.h netinet/in.h' '' '' '
+  if test_code 'in6_pktinfo' 'sys/socket.h netinet/in.h' '' '' '
     return sizeof(struct in6_pktinfo);'
   then
+    add_def HAVE_IN6_PKTINFO
+  else
     if test_code 'in6_pktinfo with _GNU_SOURCE' 'sys/socket.h netinet/in.h' \
       '-D_GNU_SOURCE' '' 'return sizeof(struct in6_pktinfo);'
     then
       add_def _GNU_SOURCE
+      add_def HAVE_IN6_PKTINFO
     fi
   fi
 fi
index 6a556f67a1c0c1ea3c3f5bbb9f084b6fe4a656f5..57e979b907bbd4918d5dfcaf6de891274326ab74 100644 (file)
--- a/ntp_io.c
+++ b/ntp_io.c
@@ -355,7 +355,7 @@ read_from_socket(void *anything)
       }
 #endif
 
-#ifdef IPV6_PKTINFO
+#if defined(IPV6_PKTINFO) && defined(HAVE_IN6_PKTINFO)
       if (cmsg->cmsg_level == IPPROTO_IPV6 && cmsg->cmsg_type == IPV6_PKTINFO) {
         struct in6_pktinfo ipi;
 
@@ -462,7 +462,7 @@ send_packet(void *packet, int packetlen, NTP_Remote_Address *remote_addr)
   }
 #endif
 
-#ifdef IPV6_PKTINFO
+#if defined(IPV6_PKTINFO) && defined(HAVE_IN6_PKTINFO)
   if (remote_addr->local_ip_addr.family == IPADDR_INET6) {
     struct cmsghdr *cmsg;
     struct in6_pktinfo *ipi;