mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 03:52:28 +02:00
Adjust Linux+FreeBSD DCO device name handling to 'non DCO linux style'
On Linux, tun devices are created according to the following algorithm --dev tun -> try tun0, tun1, ... tun255, use first free --dev anything -> create a TUN device named "anything" (as long as "anything" is not "null" or "tap[N]") DCO was following the "other platform convention", where everything not having a digit was iterated ("--dev tun-home" -> "tun-home0") - which does not work for classic tun/tap devices on the BSDs anyway, so is not the best model. Adjust open_tun_dco_generic() to document expected behaviour and do the thing. Signed-off-by: Gert Doering <gert@greenie.muc.de> Acked-by: Kristof Provost <kprovost@netgate.com> Acked-by: Antonio Quartulli <a@unstable.cc> Message-Id: <20220829190124.2636045-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg25134.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
26d6192772
commit
a5cf4cfb77
@ -1943,12 +1943,14 @@ open_tun_dco_generic(const char *dev, const char *dev_type,
|
||||
}
|
||||
|
||||
/*
|
||||
* dynamic open is indicated by --dev specified without
|
||||
* explicit unit number. Try opening DCO device named "[dev]n"
|
||||
* where n = [0, 255].
|
||||
* unlike "open_tun_generic()", DCO on Linux and FreeBSD follows
|
||||
* the device naming model of "non-DCO linux", that is:
|
||||
* --dev tun -> try tun0, tun1, ... tun255, use first free
|
||||
* --dev <anything> -> (try to) create a tun device named "anything"
|
||||
* ("--dev tap" and "--dev null" are caught earlier and not handled here)
|
||||
*/
|
||||
|
||||
if (!tun_name_is_fixed(dev))
|
||||
if (strcmp(dev, "tun") == 0)
|
||||
{
|
||||
for (int i = 0; i < 256; ++i)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user