From: Sami Rusani Date: Sat, 27 Jun 2026 19:03:51 +0000 (+0200) Subject: Document --preresolve option X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=032c13365d2f1d18fdfd4b87c2bc9042e0855d65;p=thirdparty%2Fopenvpn.git Document --preresolve option The option resolves configured remote, local, and proxy hostnames at startup and reuses those resolved addresses on reconnects. Document it in the usage text and client options man page, including the reconnect trade-off for configurations that rely on changing DNS answers. GitHub: fixes OpenVPN/openvpn#532 Acked-by: Arne Schwabe Message-Id: <_5bQ5LvkEmn_vaE7Ng8xPAcHJFWfy7td0Yvim0iLc3YVoer2RM1-PoBKAGPzHZKx1rsZP7Ht7kM_2eIUSidNkMW34yS7eT549_fSvcb-dl0=@pm.me> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg37387.html Signed-off-by: Gert Doering --- diff --git a/doc/man-sections/client-options.rst b/doc/man-sections/client-options.rst index 3ad91043f..87c138a5c 100644 --- a/doc/man-sections/client-options.rst +++ b/doc/man-sections/client-options.rst @@ -568,6 +568,17 @@ configuration. By default, ``--resolv-retry infinite`` is enabled. You can disable by setting n=0. +--preresolve + Resolve configured ``--remote``, ``--local``, ``--http-proxy``, and + ``--socks-proxy`` hostnames at startup before opening the connection. + + The resolved addresses are cached and reused for reconnects, so OpenVPN + will not re-resolve these hostnames after the initial connection attempt. + This can help configurations where DNS is unavailable while the VPN is + down, but can be counter-productive for dynamic DNS names or when roaming + between networks where address family availability changes, such as + DNS64/NAT64. + --single-session After initially connecting to a remote peer, disallow any new connections. Using this option means that a remote peer cannot connect, diff --git a/src/openvpn/options.c b/src/openvpn/options.c index f41402422..87218d47d 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -175,6 +175,7 @@ static const char usage_message[] = "--resolv-retry n: If hostname resolve fails for --remote, retry\n" " resolve for n seconds before failing (disabled by default).\n" " Set n=\"infinite\" to retry indefinitely.\n" + "--preresolve : Resolve configured --remote, --local, and proxy hostnames at startup.\n" "--float : Allow remote to change its IP address/port, such as through\n" " DHCP (this is the default if --remote is not used).\n" "--ipchange cmd : Run command cmd on remote ip address initial\n"