From: Gert Doering Date: Mon, 23 Nov 2015 19:47:42 +0000 (+0100) Subject: Fix info.af == AF_UNSPEC case for server with --mtu-disc X-Git-Tag: v2.4_alpha1~194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed5d0fe5097a26206a6a7d4463622461a0987655;p=thirdparty%2Fopenvpn.git 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 --- 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); }