]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
socket-dynamic: Use IPv6-only mode for IPv6 sockets
authorTobias Brunner <tobias@strongswan.org>
Thu, 22 Sep 2022 15:36:38 +0000 (17:36 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 22 Sep 2022 15:38:58 +0000 (17:38 +0200)
Same as the previous commit.

Fixes: 5f9ad62a8156 ("socket-dynamic: Don't set SO_REUSEADDR on IKE sockets anymore")
src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c

index 3dedbd3ceb2bbce071bddb0cadb36bb44d01d519..fc1250c44c4fd71552ddb72e9f3d302a1b456ed1 100644 (file)
@@ -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));