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 ]) AC_MSG_CHECKING(whether 'struct sockaddr' has sa_len) AC_TRY_COMPILE([#include #include 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