From: Tobias Brunner Date: Thu, 22 Sep 2022 15:36:38 +0000 (+0200) Subject: socket-dynamic: Use IPv6-only mode for IPv6 sockets X-Git-Tag: 5.9.8rc1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03ea02175e41845038ccf8ea905ac03c91cc9027;p=thirdparty%2Fstrongswan.git socket-dynamic: Use IPv6-only mode for IPv6 sockets Same as the previous commit. Fixes: 5f9ad62a8156 ("socket-dynamic: Don't set SO_REUSEADDR on IKE sockets anymore") --- diff --git a/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c b/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c index 3dedbd3ceb..fc1250c44c 100644 --- a/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c +++ b/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c @@ -410,7 +410,13 @@ static int open_socket(private_socket_dynamic_socket_t *this, DBG1(DBG_NET, "could not open socket: %s", strerror(errno)); return 0; } - + if (family == AF_INET6 && + setsockopt(fd, SOL_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0) + { + DBG1(DBG_NET, "unable to set IPV6_V6ONLY on socket: %s", strerror(errno)); + close(fd); + return 0; + } if (bind(fd, &addr.s, addrlen) < 0) { DBG1(DBG_NET, "unable to bind socket: %s", strerror(errno));