From 3065081c3e9d1505e37a6b4aef8d9f4955bce61a Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 29 Sep 2014 17:11:53 +0200 Subject: kernel-netlink: Fallback to UDP if detecting socket protocol fails getsockopt(SO_PROTOCOL) is not supported before 2.6.32. Default to UDP if either the SO_PROTOCOL define is missing or the syscall fails. --- src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c index f0ada41d5..0f88b649e 100644 --- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -2720,10 +2720,12 @@ static bool add_port_bypass(private_kernel_netlink_ipsec_t *this, { return FALSE; } +#ifdef SO_PROTOCOL /* since 2.6.32 */ len = sizeof(bypass.proto); if (getsockopt(fd, SOL_SOCKET, SO_PROTOCOL, &bypass.proto, &len) != 0) - { - return FALSE; +#endif + { /* assume UDP if SO_PROTOCOL not supported */ + bypass.proto = IPPROTO_UDP; } switch (family) { -- cgit v1.2.3