ACK. Stared at the code for a while, discussed on IRC, with this small change to bring "use TCP to talk to a socks proxy, then use UDP to connect to OpenVPN server" back to working state:
diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index d2f8240..b769171 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -872,7 +872,8 @@ create_socket (struct link_socket* sock, struct addrinfo* addr) * currently resolve two remote addresses is not supported, * TODO: Rewrite the whole resolve_remote */ struct addrinfo addrinfo_tmp = *addr; - addr->ai_protocol = IPPROTO_TCP; + addrinfo_tmp.ai_socktype = SOCK_STREAM; + addrinfo_tmp.ai_protocol = IPPROTO_TCP; sock->ctrl_sd = create_socket_tcp (&addrinfo_tmp); } #endif Patch has been applied to the master branch. commit 7dbe04de74ea01bd77461ec82253dd769381c711 Author: Arne Schwabe List-Post: openvpn-devel@lists.sourceforge.net Date: Fri Mar 21 14:18:43 2014 +0100 Clean up of socket code. Acked-by: Gert Doering <g...@greenie.muc.de> Message-Id: <1395407925-25518-11-git-send-email-a...@rfc2549.org> URL: http://article.gmane.org/gmane.network.openvpn.devel/8370 Signed-off-by: Gert Doering <g...@greenie.muc.de> -- kind regards, Gert Doering