From ed5d0fe5097a26206a6a7d4463622461a0987655 Mon Sep 17 00:00:00 2001 From: Gert Doering Date: Mon, 23 Nov 2015 20:47:42 +0100 Subject: [PATCH] Fix info.af == AF_UNSPEC case for server with --mtu-disc Commit 2bed089d31a12c2 introduced "AF_UNSPEC" sockets when we do not know the actual address family yet - for the "bind local" case, getaddrinfo() will tell us what to do, but that information never made it into sock->info.af - so, make it. Otherwise, trying to call --mtu-disc on an OpenVPN server will cause a M_FATAL error in set_mtu_discovery()) Signed-off-by: Gert Doering Acked-by: Christian Pellegrin Message-ID: <20151121200637.GD24952@greenie.muc.de> URL: http://article.gmane.org/gmane.network.openvpn.devel/10547 --- src/openvpn/socket.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index b24d9ad5f..8e6b4bcac 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -1887,8 +1887,11 @@ link_socket_init_phase2 (struct link_socket *sock, /* Warn if this is because neither v4 or v6 was specified * and we should not connect a remote */ if (sock->info.af == AF_UNSPEC) - msg (M_WARN, "Could not determine IPv4/IPv6 protocol. Using %s", + { + msg (M_WARN, "Could not determine IPv4/IPv6 protocol. Using %s", addr_family_name(sock->info.lsa->bind_local->ai_family)); + sock->info.af = sock->info.lsa->bind_local->ai_family; + } create_socket (sock, sock->info.lsa->bind_local); } -- 2.47.2