[build] configure needs to check for struct icmphdr for IRDP
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.
diff --git a/ChangeLog b/ChangeLog
index 4de8e87..7db88da 100644
--- 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
diff --git a/configure.ac b/configure.ac
index f66336c..1c50ef2 100755
--- a/configure.ac
+++ b/configure.ac
@@ -418,7 +418,7 @@
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 @@
#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 @@
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 @@
[], [], 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])