Attention is currently required from: flichtenheld, plaisthos.
Hello plaisthos, flichtenheld,
I'd like you to do a code review.
Please visit
http://gerrit.openvpn.net/c/openvpn/+/1248?usp=email
to review the following change.
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.
Change-Id: I9b099924286f9bccb6833e1e40606abe72714bbb
Signed-off-by: Lev Stipakov <[email protected]>
---
M src/openvpn/options.c
M src/openvpn/options.h
2 files changed, 9 insertions(+), 0 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/48/1248/1
diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index f35738d..d1ce551 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 b033068..445fd25 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: newchange
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I9b099924286f9bccb6833e1e40606abe72714bbb
Gerrit-Change-Number: 1248
Gerrit-PatchSet: 1
Gerrit-Owner: stipa <[email protected]>
Gerrit-Reviewer: flichtenheld <[email protected]>
Gerrit-Reviewer: plaisthos <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: plaisthos <[email protected]>
Gerrit-Attention: flichtenheld <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel