From 23d61c56b9fd218c39ad151b01b7e2d6690e6093 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 25 Nov 2013 13:31:17 +0100 Subject: Implement dual stack client support for OpenVPN This patch contains a number of changes. I did not further spit this since some changes make only sense being changed together. Always use connection_list, simplifies the reconnection logic. Change meaning of --connect-retry-max and --connect-retry to be used all connections. This now allows OpenVPN to quit after n unsuccessful udp connection attempts Remove the tcp reconnection logic. Failing a TCP connection will now cause a USR1 like a UDP connection. Also extend sig->source from bool to int to specify signal source. This allows a finer grained reconnection logic if necessary in the future. Dual-Stack support: if an address resolves to multiple records each address is tried in sequential order. Then proceed to next connection entry. Introduce the field current_remote to represent the current connecting remote. Also change some fields to struct addrinfo* form openvn_addr to store multiple addresses needed for the dual stack support. Change meaning from udp and tcp to allow both IPv4 and IPv6. Introducue new udp4 and tcp4 to force IPv4. Signed-off-by: Arne Schwabe Acked-by: Gert Doering Message-Id: <1385382680-5912-6-git-send-email-arne@rfc2549.org> URL: http://article.gmane.org/gmane.network.openvpn.devel/8058 Signed-off-by: Gert Doering Message-ID: <20131129194258.GL161@greenie.muc.de> Acked-by: Arne Schwabe URL: http://article.gmane.org/gmane.network.openvpn.devel/8071 Signed-off-by: Gert Doering --- src/openvpn/tun.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/openvpn/tun.h') diff --git a/src/openvpn/tun.h b/src/openvpn/tun.h index ea2290c..631b53c 100644 --- a/src/openvpn/tun.h +++ b/src/openvpn/tun.h @@ -232,7 +232,7 @@ struct tuntap *init_tun (const char *dev, /* --dev option */ const char *ifconfig_ipv6_local_parm, /* --ifconfig parm 1 / IPv6 */ int ifconfig_ipv6_netbits_parm, /* --ifconfig parm 1 / bits */ const char *ifconfig_ipv6_remote_parm, /* --ifconfig parm 2 / IPv6 */ - in_addr_t local_public, + struct addrinfo *local_public, struct addrinfo *remote_public, const bool strict_warn, struct env_set *es); -- cgit