socket-default: Use IPv6-only mode for IPv6 sockets
Otherwise, we can't open a dedicated IPv4 socket on the same port as the
IPv6 socket already is set up do receive IPv4 packets (unless we'd again
enable SO_REUSEADDR).
Fixes: 83da133712 ("socket-default: Don't set SO_REUSEADDR on IKE sockets anymore")
This commit is contained in:
@@ -699,6 +699,14 @@ static int open_socket(private_socket_default_socket_t *this,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (family == AF_INET6 &&
|
||||||
|
setsockopt(skt, SOL_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0)
|
||||||
|
{
|
||||||
|
DBG1(DBG_NET, "unable to set IPV6_V6ONLY on socket: %s", strerror(errno));
|
||||||
|
close(skt);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* bind the socket */
|
/* bind the socket */
|
||||||
if (bind(skt, &addr.sockaddr, addrlen) < 0)
|
if (bind(skt, &addr.sockaddr, addrlen) < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user