Makes sense. I am pretty sure the interface network route is not required to
be added explicitly.

Acked-by: Simon Rozman <si...@rozman.si>

Best regards,
Simon

> -----Original Message-----
> From: Lev Stipakov <lstipa...@gmail.com>
> Sent: Thursday, December 19, 2019 12:18 PM
> To: openvpn-devel@lists.sourceforge.net
> Cc: Lev Stipakov <l...@openvpn.net>
> Subject: [Openvpn-devel] [PATCH] tun.c: do not add/remove routes on tun
> open/close
> 
> From: Lev Stipakov <l...@openvpn.net>
> 
> Commit 1c4a47f added route manipulation to open/close tun functions,
> which is not really needed:
> 
>  - routes are added in check_add_routes(), triggered by timer
> 
>  - routes are removed in delete_routes(), called by do_close_tun()
> 
> Signed-off-by: Lev Stipakov <l...@openvpn.net>
> ---
>  src/openvpn/route.c |  2 +-
>  src/openvpn/route.h |  3 ---
>  src/openvpn/tun.c   | 17 -----------------
>  3 files changed, 1 insertion(+), 21 deletions(-)
> 
> diff --git a/src/openvpn/route.c b/src/openvpn/route.c index
> cc6d5519..97e90e56 100644
> --- a/src/openvpn/route.c
> +++ b/src/openvpn/route.c
> @@ -3019,7 +3019,7 @@ out:
>      return ret;
>  }
> 
> -bool
> +static bool
>  do_route_ipv4_service(const bool add, const struct route_ipv4 *r, const
> struct tuntap *tt)  {
>      DWORD if_index = windows_route_find_if_index(r, tt); diff --git
> a/src/openvpn/route.h b/src/openvpn/route.h index 27b652cd..7dd96091
> 100644
> --- a/src/openvpn/route.h
> +++ b/src/openvpn/route.h
> @@ -321,9 +321,6 @@ void setenv_routes(struct env_set *es, const struct
> route_list *rl);
> 
>  void setenv_routes_ipv6(struct env_set *es, const struct
> route_ipv6_list *rl6);
> 
> -bool do_route_ipv4_service(const bool add, const struct route_ipv4 *r,
> -                           const struct tuntap *tt);
> -
>  bool is_special_addr(const char *addr_str);
> 
>  void get_default_gateway(struct route_gateway_info *rgi, diff --git
> a/src/openvpn/tun.c b/src/openvpn/tun.c index 8d87ac41..ad497a71 100644
> --- a/src/openvpn/tun.c
> +++ b/src/openvpn/tun.c
> @@ -860,21 +860,6 @@ delete_route_connected_v6_net(struct tuntap *tt,  }
> #endif /* if defined(_WIN32) || defined(TARGET_DARWIN) ||
> defined(TARGET_NETBSD) || defined(TARGET_OPENBSD) */
> 
> -#if defined(_WIN32)
> -void
> -do_route_ipv4_service_tun(bool add, const struct tuntap *tt) -{
> -    struct route_ipv4 r4;
> -    CLEAR(r4);
> -    r4.network = tt->local & tt->remote_netmask;
> -    r4.netmask = tt->remote_netmask;
> -    r4.gateway = tt->local;
> -    r4.metric = 0;                     /* connected route */
> -    r4.flags = RT_DEFINED | RT_METRIC_DEFINED;
> -    do_route_ipv4_service(add, &r4, tt);
> -}
> -#endif
> -
>  #if defined(TARGET_FREEBSD) || defined(TARGET_DRAGONFLY)  \
>      || defined(TARGET_NETBSD) || defined(TARGET_OPENBSD)
>  /* we can't use true subnet mode on tun on all platforms, as that @@ -
> 1406,7 +1391,6 @@ do_ifconfig_ipv4(struct tuntap *tt, const char
> *ifname, int tun_mtu,
>          if (tt->options.msg_channel && tt->wintun)
>          {
>              do_address_service(true, AF_INET, tt);
> -            do_route_ipv4_service_tun(true, tt);
>              do_dns_service(true, AF_INET, tt);
>          }
>          else
> @@ -6489,7 +6473,6 @@ close_tun(struct tuntap *tt, openvpn_net_ctx_t
> *ctx)
>      {
>          if (tt->options.msg_channel)
>          {
> -            do_route_ipv4_service_tun(false, tt);
>              do_address_service(false, AF_INET, tt);
>              do_dns_service(false, AF_INET, tt);
>          }
> --
> 2.17.1
> 
> 
> 
> _______________________________________________
> Openvpn-devel mailing list
> Openvpn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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

Reply via email to