Message ID | 20230203191440.136050-3-frank@lichtenheld.com |
---|---|
State | Accepted |
Headers | show |
Series | Allow mingw builds with -Werror | expand |
Looks good. Stared at the code and test-compiled with MSVC. Acked-by: Lev Stipakov <lstipakov@gmail.com> pe 3. helmik. 2023 klo 21.15 Frank Lichtenheld (frank@lichtenheld.com) kirjoitti: > > At this point it might be easier to create a > dedicated function for Windows... > > Signed-off-by: Frank Lichtenheld <frank@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
Test compiled on mingw & linux, and pushed to the buildbots. This is the sort of cross-platform patch that looks harmless and breaks somewhere :-) (but it didn't). We normally try to avoid refactoring in the middle of a release branch, but "we're between .0 and .1, and it's very trivial code movearound only". Your patch has been applied to the master branch and release/2.6. commit 48495ce3cd8d53663c56d265ef6a82234878e205 (master) commit ab46bdd1ef9951b684782de00f37fec4092fd0f1 (release/2.6) Author: Frank Lichtenheld Date: Fri Feb 3 20:14:37 2023 +0100 Windows: fix unused variables in delete_route_ipv6 Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Lev Stipakov <lstipakov@gmail.com> Message-Id: <20230203191440.136050-3-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26140.html Signed-off-by: Gert Doering <gert@greenie.muc.de> -- kind regards, Gert Doering
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))
At this point it might be easier to create a dedicated function for Windows... Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> --- src/openvpn/route.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-)