cron2 has submitted this change. ( http://gerrit.openvpn.net/c/openvpn/+/1248?usp=email )
Change subject: Preserve ifconfig(_ipv6)_local across reconnect ...................................................................... Preserve ifconfig(_ipv6)_local across reconnect Turns out that ifconfig_(ipv6)_local options are set once and are not reset on a reconnect. Consider following scenario: - connect first time, server pushes ifconfig-ipv6 - add a ipv6 network route because ifconfig_ipv6_local is set - reconnect, server doesn't push ifconfig-ipv6 Because of ifconfig_ipv6_local is not reset and holds the value set by the first connect, client adds a ipv6 network route - but this is wrong, since ipv6 wasn't pushed this time by the server. Fix by saving/restoring ifconfig(_ipv6)_local in a struct options_pre_connect along with other options which preserves the initial values until --pull modifications are applied. Github: OpenVPN/openvpn#850 Change-Id: I9b099924286f9bccb6833e1e40606abe72714bbb Signed-off-by: Lev Stipakov <[email protected]> Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1248 Message-Id: <[email protected]> URL: https://sourceforge.net/p/openvpn/mailman/message/59244523/ Signed-off-by: Gert Doering <[email protected]> --- M src/openvpn/options.c M src/openvpn/options.h 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/src/openvpn/options.c b/src/openvpn/options.c index f2e6dec..fabcc1e 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -3143,6 +3143,9 @@ o->pre_connect->client_nat_defined = true; } + o->pre_connect->ifconfig_local = o->ifconfig_local; + o->pre_connect->ifconfig_ipv6_local = o->ifconfig_ipv6_local; + o->pre_connect->route_default_gateway = o->route_default_gateway; o->pre_connect->route_ipv6_default_gateway = o->route_ipv6_default_gateway; @@ -3193,6 +3196,9 @@ o->routes_ipv6 = NULL; } + o->ifconfig_local = pp->ifconfig_local; + o->ifconfig_ipv6_local = pp->ifconfig_ipv6_local; + o->route_default_gateway = pp->route_default_gateway; o->route_ipv6_default_gateway = pp->route_ipv6_default_gateway; diff --git a/src/openvpn/options.h b/src/openvpn/options.h index f038975..6ecf4f8 100644 --- a/src/openvpn/options.h +++ b/src/openvpn/options.h @@ -64,6 +64,9 @@ bool tuntap_options_defined; struct tuntap_options tuntap_options; + const char *ifconfig_local; + const char *ifconfig_ipv6_local; + bool routes_defined; struct route_option_list *routes; -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/1248?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I9b099924286f9bccb6833e1e40606abe72714bbb Gerrit-Change-Number: 1248 Gerrit-PatchSet: 3 Gerrit-Owner: stipa <[email protected]> Gerrit-Reviewer: cron2 <[email protected]> Gerrit-Reviewer: flichtenheld <[email protected]> Gerrit-Reviewer: plaisthos <[email protected]> Gerrit-CC: openvpn-devel <[email protected]>
_______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel
