[Openvpn-devel,2/5] Windows: fix unused variables in delete_route_ipv6

Message ID 20230203191440.136050-3-frank@lichtenheld.com
State Accepted
Headers show
Series Allow mingw builds with -Werror | expand

Commit Message

Frank Lichtenheld Feb. 3, 2023, 7:14 p.m. UTC
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(-)

Comments

Lev Stipakov Feb. 7, 2023, 9:26 a.m. UTC | #1
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
Gert Doering Feb. 7, 2023, 4:49 p.m. UTC | #2
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

Patch

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))