From 789ba170246ab66e08211eb31903d667f559dbbc Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 29 Jul 2009 11:34:47 +0200 Subject: [PATCH] Configure the NAT-T port via sysctl on Mac OS X to enable handling of incoming UDP encapsulated ESP packets in the kernel. --- src/charon/network/socket.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/charon/network/socket.c b/src/charon/network/socket.c index 8627ca76d..2ad695e13 100644 --- a/src/charon/network/socket.c +++ b/src/charon/network/socket.c @@ -34,6 +34,9 @@ #include #include #include +#ifdef __APPLE__ +#include +#endif #include "socket.h" @@ -611,6 +614,18 @@ socket_t *socket_create() this->ipv6 = 0; this->ipv4_natt = 0; this->ipv6_natt = 0; + +#ifdef __APPLE__ + { + int natt_port = IKEV2_NATT_PORT; + if (sysctlbyname("net.inet.ipsec.esp_port", NULL, NULL, &natt_port, + sizeof(natt_port)) != 0) + { + DBG1(DBG_NET, "could not set net.inet.ipsec.esp_port to %d: %s", + natt_port, strerror(errno)); + } + } +#endif this->ipv4 = open_socket(this, AF_INET, IKEV2_UDP_PORT); if (this->ipv4 == 0)