At this point it might be easier to create a dedicated function for Windows...
Signed-off-by: Frank Lichtenheld <fr...@lichtenheld.com> --- src/openvpn/route.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/openvpn/route.c b/src/openvpn/route.c index 82519c94..3798bc65 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -2333,12 +2333,6 @@ delete_route_ipv6(const struct route_ipv6 *r6, const struct tuntap *tt, openvpn_net_ctx_t *ctx) { const char *network; -#if !defined(TARGET_LINUX) - const char *gateway; -#else - int metric; -#endif - bool gateway_needed = false; if ((r6->flags & (RT_DEFINED|RT_ADDED)) != (RT_DEFINED|RT_ADDED)) { @@ -2346,19 +2340,34 @@ delete_route_ipv6(const struct route_ipv6 *r6, const struct tuntap *tt, } #ifndef _WIN32 +#if !defined(TARGET_LINUX) + const char *gateway; +#else + int metric; +#endif + bool gateway_needed = false; const char *device = tt->actual_name; if (r6->iface != NULL) /* vpn server special route */ { device = r6->iface; gateway_needed = true; } + + /* if we used a gateway on "add route", we also need to specify it on + * delete, otherwise some OSes will refuse to delete the route + */ + if (tt->type == DEV_TYPE_TAP + && !( (r6->flags & RT_METRIC_DEFINED) && r6->metric == 0 ) ) + { + gateway_needed = true; + } #endif struct gc_arena gc = gc_new(); struct argv argv = argv_new(); network = print_in6_addr( r6->network, 0, &gc); -#if !defined(TARGET_LINUX) +#if !defined(TARGET_LINUX) && !defined(_WIN32) gateway = print_in6_addr( r6->gateway, 0, &gc); #endif @@ -2382,15 +2391,6 @@ delete_route_ipv6(const struct route_ipv6 *r6, const struct tuntap *tt, msg( M_INFO, "delete_route_ipv6(%s/%d)", network, r6->netbits ); - /* if we used a gateway on "add route", we also need to specify it on - * delete, otherwise some OSes will refuse to delete the route - */ - if (tt->type == DEV_TYPE_TAP - && !( (r6->flags & RT_METRIC_DEFINED) && r6->metric == 0 ) ) - { - gateway_needed = true; - } - #if defined(TARGET_LINUX) metric = -1; if ((r6->flags & RT_METRIC_DEFINED) && (r6->metric > 0)) -- 2.34.1 _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel