From: Lev Stipakov Date: Thu, 19 Dec 2019 13:29:53 +0000 (+0200) Subject: options.c: do not force route delay when not using DHCP X-Git-Tag: v2.5_beta1~220 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dd4647acf40b26bb8d7403debc00a342c663d618;p=thirdparty%2Fopenvpn.git options.c: do not force route delay when not using DHCP Route delay may be only necessary when we perform DHCP handshake. When we use IPAPI / netsh / manual, no delay needed. Signed-off-by: Lev Stipakov Acked-by: Simon Rozman Message-Id: <20191219132953.375-1-lstipakov@gmail.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19257.html Signed-off-by: Gert Doering --- diff --git a/src/openvpn/options.c b/src/openvpn/options.c index cebcbb07f..a6f40e101 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -3001,9 +3001,18 @@ options_postprocess_mutate_invariant(struct options *options) } #ifdef _WIN32 + /* when using wintun, kernel doesn't send DHCP requests, so use netsh to set IP address and netmask */ + if (options->wintun) + { + options->tuntap_options.ip_win32_type = IPW32_SET_NETSH; + } + if ((dev == DEV_TYPE_TUN || dev == DEV_TYPE_TAP) && !options->route_delay_defined) { - if (options->mode == MODE_POINT_TO_POINT) + /* delay may only be necessary when we perform DHCP handshake */ + const bool dhcp = (options->tuntap_options.ip_win32_type == IPW32_SET_DHCP_MASQ) + || (options->tuntap_options.ip_win32_type == IPW32_SET_ADAPTIVE); + if ((options->mode == MODE_POINT_TO_POINT) && dhcp) { options->route_delay_defined = true; options->route_delay = 5; /* Vista sometimes has a race without this */ @@ -3016,14 +3025,8 @@ options_postprocess_mutate_invariant(struct options *options) options->ifconfig_noexec = false; } - /* for wintun kernel doesn't send DHCP requests, so use netsh to set IP address and netmask */ - if (options->wintun) - { - options->tuntap_options.ip_win32_type = IPW32_SET_NETSH; - } - remap_redirect_gateway_flags(options); -#endif +#endif /* ifdef _WIN32 */ #if P2MP_SERVER /*