Looks good. Stared at the code and test-compiled with MSVC.

Acked-by: Lev Stipakov <lstipa...@gmail.com>

pe 3. helmik. 2023 klo 21.15 Frank Lichtenheld (fr...@lichtenheld.com)
kirjoitti:
>
> 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



-- 
-Lev


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to