OpenVPN
Find a file
Gert Doering 477775b032
Some checks failed
Build / gcc-mingw - mingw (push) Has been cancelled
Build / gcc-mingw - mingw64 (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 --disable-lzo --disable-lz4 (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 --disable-management (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 --enable-async-push (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 --enable-iproute2 (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 --enable-small (push) Has been cancelled
Build / gcc - ubuntu-18.04 - OpenSSL 1.0.2 (push) Has been cancelled
Build / gcc - ubuntu-18.04 - OpenSSL 1.1.1 (push) Has been cancelled
Build / gcc - ubuntu-20.04 - OpenSSL 1.1.1 (push) Has been cancelled
Build / gcc - ubuntu-22.04 - OpenSSL 3.0.2 (push) Has been cancelled
Build / gcc - ubuntu-18.04 - mbed TLS (push) Has been cancelled
Build / gcc - ubuntu-20.04 - mbed TLS (push) Has been cancelled
Build / gcc - ubuntu-22.04 - mbed TLS (push) Has been cancelled
Build / clang-asan - ubuntu-20.04 - mbedtls (push) Has been cancelled
Build / clang-asan - ubuntu-20.04 - openssl (push) Has been cancelled
Build / macOS - OpenSSL 1.1 - asan (push) Has been cancelled
Build / macOS - OpenSSL 3 - asan (push) Has been cancelled
Build / macOS - OpenSSL 1.1 - normal (push) Has been cancelled
Build / macOS - OpenSSL 3 - normal (push) Has been cancelled
Build / msbuild - arm64 - openssl (push) Has been cancelled
Build / msbuild - x86 - openssl (push) Has been cancelled
Build / msbuild - x64 - openssl (push) Has been cancelled
tunnel_server_*(): close correct inotify fd
On a full SIGUSR1 restart of a p2mp server compiled with
--enable-async-push, tunnel_server_{udp,tcp}() will try to close and
reopen the "inotify" control file descriptor.  For whatever reason,
the original code referenced the wrong context, always closing fd 0.

As a consequence of this, on the second SIGUSR1 restart, the server
will close() the first active socket file descriptor, and if there
are active DCO clients, the resulting event confusion will lead to
an ASSERT(!mi->halt).

Fix by closing the correct FD. Add logging.

This is a backport of commit 5521872f80 to the "old p2mp code"
with a separate mudp.c and mtcp.c for UDP and TCP servers, respectively.

Github: fixes OpenVPN/openvpn#966

Change-Id: Idcb1421b9f7fcbee9620fd1d45cceab050751373
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Arne Schwabe <arne-openvpn@rfc2549.org>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1499
Message-Id: <20260128150640.13867-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35493.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 172fe07129)
2026-01-29 18:37:48 +01:00
.github Add macos OpenSSL 3.0 and ASAN builds 2022-05-13 08:50:34 +02:00
.travis Change travis build scripts to use https when fetching prerequisites. 2020-11-24 18:02:30 +01:00
build git-version.py: proper support for tags 2022-12-19 17:45:28 +01:00
contrib vcpkg-ports/pkcs11-helper: bump to release 1.29 2022-04-25 09:58:26 +02:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
dev-tools update copyright year to 2022 2022-01-27 16:07:58 +01:00
distro update copyright year to 2022 2022-01-27 16:07:58 +01:00
doc fix typo: dhcp-options to dhcp-option in vpn-network-options.rst 2023-07-17 15:28:56 +02:00
include update copyright year to 2022 2022-01-27 16:07:58 +01:00
m4 Fix various spelling mistakes 2019-02-06 19:07:34 +01:00
sample sample-keys: renew for the next 10 years 2024-11-03 13:35:29 +01:00
src tunnel_server_*(): close correct inotify fd 2026-01-29 18:37:48 +01:00
tests Fix handling an optional invalid cipher at the end of data-ciphers 2022-11-11 14:38:10 +01:00
.git-blame-ignore-revs Add c1ff8f247f (engine, pool, SSO) to .git-blame-ignore-revs 2020-06-26 15:03:39 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore vcpkg: switch to manifest 2022-05-05 15:14:22 +02:00
.mailmap Update .mailmap to unify and clean up odd names and e-mail addresses 2016-10-18 13:46:04 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.travis.yml travis: don't run t_net.sh test 2020-08-10 18:34:19 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog Preparing release 2.5.11 2024-07-18 14:46:01 +02:00
Changes.rst Preparing release 2.5.11 2024-07-18 14:46:01 +02:00
compat.m4 copyright: Update GPLv2 license texts 2017-06-16 10:38:03 +02:00
config-msvc-version.h.in msvc: fix product version display 2021-10-14 16:30:53 +02:00
config-msvc.h msvc: add branch name and commit hash to version output 2022-09-26 11:25:20 +02:00
configure.ac Add --with-openssl-engine autoconf option (auto|yes|no) 2022-05-13 08:52:38 +02:00
CONTRIBUTING.rst Update IRC information in CONTRIBUTING.rst 2021-11-22 13:10:31 +01:00
COPYING Add Apache2 linking with for new commits 2023-05-03 18:11:06 +02:00
COPYRIGHT.GPL copyright: Update GPLv2 license texts 2017-06-16 10:38:03 +02:00
INSTALL Drop support for OpenSSL 1.0.1 2020-07-20 21:40:11 +02:00
Makefile.am msvc: cleanup 2022-02-09 08:21:43 +01:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
openvpn.sln msvc: add ARM64 configuration 2021-06-07 10:20:40 +02:00
PORTS update copyright year to 2022 2022-01-27 16:07:58 +01:00
README Update copyright to include 2018 plus company name change 2018-02-01 08:29:21 +01:00
README.ec Implement tls-groups option to specify eliptic curves/groups 2020-07-21 22:33:58 +02:00
README.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
README.mbedtls docs: Replace all PolarSSL references to mbed TLS 2017-09-06 23:42:55 +02:00
TODO.IPv6 Fix various spelling mistakes 2019-02-06 19:07:34 +01:00
version.m4 Preparing release 2.5.11 2024-07-18 14:46:01 +02:00
version.sh.in build: windows: install version.sh to allow installer read version 2012-03-24 00:14:23 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2018 OpenVPN Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

To get the latest release of OpenVPN, go to:

	https://openvpn.net/index.php/download/community-downloads.html

To Build and Install,

	tar -zxf openvpn-<version>.tar.gz
	cd openvpn-<version>
	./configure
	make
	make install

or see the file INSTALL for more info.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

To report an issue, see
  https://community.openvpn.net/openvpn/report

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* configure.ac -- script to rebuild our configure
  script and makefile.

* sample/sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample/sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample/sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

*************************************************************************

Note that easy-rsa and tap-windows are now maintained in their own subprojects.
Their source code is available here:

  https://github.com/OpenVPN/easy-rsa
  https://github.com/OpenVPN/tap-windows

The old cross-compilation environment (domake-win) and the Python-based
buildsystem have been replaced with openvpn-build:

  https://github.com/OpenVPN/openvpn-build

See the INSTALL file for usage information.