summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in1
-rw-r--r--sysdep/autoconf.h.in3
-rw-r--r--sysdep/linux/netlink.c7
3 files changed, 11 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index c37a0264..a661734a 100644
--- a/configure.in
+++ b/configure.in
@@ -219,6 +219,7 @@ esac
AC_CHECK_HEADER(syslog.h, [AC_DEFINE(HAVE_SYSLOG)])
AC_CHECK_HEADER(alloca.h, [AC_DEFINE(HAVE_ALLOCA_H)])
AC_CHECK_HEADER([linux/lwtunnel.h], [AC_DEFINE(HAVE_LWTUNNEL)])
+AC_CHECK_MEMBERS([struct rtvia.rtvia_family], [AC_DEFINE(HAVE_STRUCT_RTVIA)],,[#include <linux/rtnetlink.h>])
AC_MSG_CHECKING(whether 'struct sockaddr' has sa_len)
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>
diff --git a/sysdep/autoconf.h.in b/sysdep/autoconf.h.in
index 6f580846..fbaba2ce 100644
--- a/sysdep/autoconf.h.in
+++ b/sysdep/autoconf.h.in
@@ -77,4 +77,7 @@
/* We have linux lwtunnel */
#undef HAVE_LWTUNNEL
+/* We have struct rtvia */
+#undef HAVE_STRUCT_RTVIA
+
#define CONFIG_PATH ?
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index bed97331..083a8d90 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -60,6 +60,13 @@
#define RTA_VIA 18
#endif
+#ifndef HAVE_STRUCT_RTVIA
+struct rtvia {
+ __kernel_sa_family_t rtvia_family;
+ __u8 rtvia_addr[0];
+};
+#endif
+
#ifndef RTA_NEWDST
#define RTA_NEWDST 19
#endif