diff --git a/configure.in b/configure.in index 1f6529c81..051b609b5 100644 --- a/configure.in +++ b/configure.in @@ -459,6 +459,17 @@ AC_TRY_COMPILE( [AC_MSG_RESULT([no])] ) +AC_MSG_CHECKING([for RTA_TABLE]) +AC_TRY_COMPILE( + [#include + #include + #include ], + [int rta_type = RTA_TABLE; + return rta_type;], + [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_RTA_TABLE])], + [AC_MSG_RESULT([no])] +) + AC_MSG_CHECKING([for gcc atomic operations]) AC_TRY_RUN( [ diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c index 9d67a6007..219657541 100644 --- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c +++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c @@ -933,12 +933,14 @@ static host_t *get_route(private_kernel_netlink_net_t *this, host_t *dest, rta_oif = *(u_int32_t*)RTA_DATA(rta); } break; +#ifdef HAVE_RTA_TABLE case RTA_TABLE: if (RTA_PAYLOAD(rta) == sizeof(rta_table)) { rta_table = *(u_int32_t*)RTA_DATA(rta); } break; +#endif /* HAVE_RTA_TABLE*/ } rta = RTA_NEXT(rta, rtasize); }