]> git.proxmox.com Git - mirror_frr.git/commitdiff
[build] configure needs to check for struct icmphdr for IRDP
authorPaul Jakma <paul.jakma@sun.com>
Fri, 22 Jun 2007 16:14:42 +0000 (16:14 +0000)
committerPaul Jakma <paul.jakma@sun.com>
Fri, 22 Jun 2007 16:14:42 +0000 (16:14 +0000)
2007-06-22 Paul Jakma <paul.jakma@sun.com>

* configure.ac: IRDP also depends on struct icmphdr, enabling
  only on in_pktinfo breaks when an OS acquires pktinfo, as
  Solaris NV has. Reported by Jim Carlson.

ChangeLog
configure.ac

index 4de8e87e6123cffa37c7a3fc84644ab356173fcd..7db88dadee58f48b571fbe4d74fc28463b7338ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-22 Paul Jakma <paul.jakma@sun.com>
+
+       * configure.ac: IRDP also depends on struct icmphdr, enabling
+         only on in_pktinfo breaks when an OS acquires pktinfo, as
+         Solaris NV has. Reported by Jim Carlson.
+
 2007-05-10 Paul Jakma <paul.jakma@sun.com>
 
        * configure.ac: Add back check for inet_aton, which got dropped
index f66336cac1122c73d4946892722d5071e1e42f7f..1c50ef24b1e51392e9c7bbc25a48313679434cb0 100755 (executable)
@@ -418,7 +418,7 @@ m4_define([QUAGGA_INCLUDES],
 
 AC_CHECK_HEADERS([sys/un.h net/if.h netinet/in_systm.h netinet/in_var.h \
        net/if_dl.h net/if_var.h net/netopt.h net/route.h \
-       inet/nd.h arpa/inet.h \
+       inet/nd.h arpa/inet.h netinet/ip_icmp.h \
        fcntl.h stddef.h sys/ioctl.h syslog.h wchar.h wctype.h \
        sys/sysctl.h sys/sockio.h kvm.h sys/conf.h],
        [], [], QUAGGA_INCLUDES)
@@ -462,6 +462,10 @@ QUAGGA_INCLUDES
 #if HAVE_ARPA_INET_H
 # include <arpa/inet.h>
 #endif
+/* Required for IDRP */
+#if HAVE_NETINET_IP_ICMP_H
+# include <netinet/ip_icmp.h>
+#endif
 ])dnl
 
 dnl V6 headers are checked below, after we check for v6
@@ -1204,8 +1208,7 @@ AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
        socklen_t,
        struct ifaliasreq, struct if6_aliasreq, struct in6_aliasreq,
        struct nd_opt_adv_interval, struct rt_addrinfo,
-       struct nd_opt_homeagent_info, struct nd_opt_adv_interval,
-       struct in_pktinfo],
+       struct nd_opt_homeagent_info, struct nd_opt_adv_interval],
        [], [], QUAGGA_INCLUDES)
 
 AC_CHECK_MEMBERS([struct sockaddr.sa_len,
@@ -1216,12 +1219,16 @@ AC_CHECK_MEMBERS([struct sockaddr.sa_len,
        [], [], QUAGGA_INCLUDES)
 
 dnl ---------------------------
-dnl pktinfo checks
+dnl IRDP/pktinfo/icmphdr checks
 dnl ---------------------------
 AC_CHECK_TYPES([struct in_pktinfo], 
- [if test "${enable_irdp}" != "no"; then
-    AC_DEFINE(HAVE_IRDP,, IRDP)
-  fi],
+ [AC_CHECK_TYPES([struct icmphdr],
+   [if test "${enable_irdp}" != "no"; then
+      AC_DEFINE(HAVE_IRDP,, IRDP)
+    fi],
+   [if test "${enable_irdp}" = "yes"; then
+      AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
+    fi], [QUAGGA_INCLUDES])],
  [if test "${enable_irdp}" = "yes"; then
     AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
   fi], [QUAGGA_INCLUDES])