diff options
author | Gert Doering <gert@greenie.muc.de> | 2015-09-11 17:33:39 +0200 |
---|---|---|
committer | Gert Doering <gert@greenie.muc.de> | 2015-09-14 13:08:03 +0200 |
commit | 0ad73859420379ec45e159e5e7bd5bb7be9382fe (patch) | |
tree | 8ad82901b2c5efbf596c382606eec57e44137c5c /src/openvpn/route.c | |
parent | c3ef2d2333fb73f8a6d460d96523d23f89e56ba2 (diff) | |
download | openvpn-0ad73859420379ec45e159e5e7bd5bb7be9382fe.tar.gz openvpn-0ad73859420379ec45e159e5e7bd5bb7be9382fe.tar.xz openvpn-0ad73859420379ec45e159e5e7bd5bb7be9382fe.zip |
refactor struct route_ipv6_list, bring in line with struct route_list again
adjust "struct route_ipv6_list" (and all users) to reflect changes
to "struct route_list" done in commit 7fb0e07e, namely:
- new member "rl6->iflags" (RL_* flags)
- new member "rl6->spec_flags" (RTSA_* flags)
- new member "rl6->remote_host_ipv6" (--remote address we're talking to)
- "rl6->routes_added"
--> "rl6->iflags & RL_ROUTES_ADDED"
- "rl6->did_redirect_default_gateway"
--> "rl6->iflags & RL_DID_REDIRECT_DEFAULT_GATEWAY"
- "rl6->did_local"
--> "rl6->iflags & RL_DID_LOCAL"
- "rl6->remote_endpoint_defined"
--> "rl6->spec_flags & RTSA_REMOTE_ENDPOINT"
- "rl6->default_metric_defined"
--> "rl6->spec_flags & RTSA_DEFAULT_METRIC"
deviating from IPv4 route_list, there is no "route_special_addr spec"
sub-struct, because it's not considered useful (rl->spec.flags becomes
rl6->spec_flags, the IPv6 equivalent of everything else in rl->spec just
lives inside struct route_ipv6_list)
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <1441985627-14822-3-git-send-email-gert@greenie.muc.de>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10084
Diffstat (limited to 'src/openvpn/route.c')
-rw-r--r-- | src/openvpn/route.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/openvpn/route.c b/src/openvpn/route.c index 0f91652..6b2af3c 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -387,7 +387,7 @@ init_route_ipv6 (struct route_ipv6 *r6, msg( M_WARN, PACKAGE_NAME "ROUTE6: cannot parse gateway spec '%s'", r6o->gateway ); } } - else if (rl6->remote_endpoint_defined) + else if (rl6->spec_flags & RTSA_REMOTE_ENDPOINT) { r6->gateway = rl6->remote_endpoint_ipv6; } @@ -412,7 +412,7 @@ init_route_ipv6 (struct route_ipv6 *r6, } r6->flags |= RT_METRIC_DEFINED; } - else if (rl6->default_metric_defined) + else if (rl6->spec_flags & RTSA_DEFAULT_METRIC) { r6->metric = rl6->default_metric; r6->flags |= RT_METRIC_DEFINED; @@ -671,7 +671,7 @@ init_route_ipv6_list (struct route_ipv6_list *rl6, if (default_metric >= 0 ) { rl6->default_metric = default_metric; - rl6->default_metric_defined = true; + rl6->spec_flags |= RTSA_DEFAULT_METRIC; } /* "default_gateway" is stuff for "redirect-gateway", which we don't @@ -686,7 +686,7 @@ init_route_ipv6_list (struct route_ipv6_list *rl6, if ( inet_pton( AF_INET6, remote_endpoint, &rl6->remote_endpoint_ipv6) == 1 ) { - rl6->remote_endpoint_defined = true; + rl6->spec_flags |= RTSA_REMOTE_ENDPOINT; } else { @@ -694,9 +694,6 @@ init_route_ipv6_list (struct route_ipv6_list *rl6, ret = false; } } - else - rl6->remote_endpoint_defined = false; - /* parse the routes from opt6 to rl6 */ { @@ -1003,7 +1000,7 @@ add_routes (struct route_list *rl, struct route_ipv6_list *rl6, const struct tun } rl->iflags |= RL_ROUTES_ADDED; } - if (rl6 && !rl6->routes_added) + if (rl6 && !(rl6->iflags & RL_ROUTES_ADDED) ) { struct route_ipv6 *r; for (r = rl6->routes_ipv6; r; r = r->next) @@ -1012,7 +1009,7 @@ add_routes (struct route_list *rl, struct route_ipv6_list *rl6, const struct tun delete_route_ipv6 (r, tt, flags, es); add_route_ipv6 (r, tt, flags, es); } - rl6->routes_added = true; + rl6->iflags |= RL_ROUTES_ADDED; } } @@ -1037,14 +1034,14 @@ delete_routes (struct route_list *rl, struct route_ipv6_list *rl6, clear_route_list (rl); } - if ( rl6 && rl6->routes_added ) + if ( rl6 && (rl6->iflags & RL_ROUTES_ADDED) ) { struct route_ipv6 *r6; for (r6 = rl6->routes_ipv6; r6; r6 = r6->next) { delete_route_ipv6 (r6, tt, flags, es); } - rl6->routes_added = false; + rl6->iflags &= ~RL_ROUTES_ADDED; } if ( rl6 ) |