diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/socket_default/socket_default_socket.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libcharon/plugins/socket_default/socket_default_socket.c b/src/libcharon/plugins/socket_default/socket_default_socket.c index 9c1bce303..a9c298362 100644 --- a/src/libcharon/plugins/socket_default/socket_default_socket.c +++ b/src/libcharon/plugins/socket_default/socket_default_socket.c @@ -692,9 +692,15 @@ socket_default_socket_t *socket_default_socket_create() } /* we allocate IPv6 sockets first as that will reserve randomly allocated - * ports also for IPv4 */ + * ports also for IPv4. On OS X, we have to do it the other way round + * for the same effect. */ +#ifdef __APPLE__ + open_socketpair(this, AF_INET, &this->ipv4, &this->ipv4_natt, "IPv4"); + open_socketpair(this, AF_INET6, &this->ipv6, &this->ipv6_natt, "IPv6"); +#else /* !__APPLE__ */ open_socketpair(this, AF_INET6, &this->ipv6, &this->ipv6_natt, "IPv6"); open_socketpair(this, AF_INET, &this->ipv4, &this->ipv4_natt, "IPv4"); +#endif /* __APPLE__ */ if (this->ipv4 == -1 && this->ipv6 == -1) { |