aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.in11
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c2
2 files changed, 13 insertions, 0 deletions
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 <sys/socket.h>
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>],
+ [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);
}