Remove support for Linux 2.2 configuration fallback

When configuring OpenVPN nowadays, the TUN/TAP configuration can
sometimes jump into the Linux 2.2 fallback code paths, which will
also fails.  The reason it jumps into fallback mode is that the
tun/tap device already exists or that /dev/net/tun does not exist.
This can be very confusing, as /dev/tunX which the fallback mode tries
to use, does not exist on Linux 2.4 and newer.

Considering that the last Linux 2.2 update was released 25-Feb-2004
and the first Linux 2.4 release came 04-Jan-2001, there are no
reasonable reasons to help users to stay on outdated kernels.
I consider this extra code path just waste of bytes ... so lets make
the world simpler.

Signed-off-by: David Sommerseth <davids@redhat.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit ce637abdafdc19547fc97192033a4d1703ecaf23)
This commit is contained in:
David Sommerseth 2011-06-15 12:00:57 +02:00
parent a599b7f629
commit 22c7d4699b
2 changed files with 3 additions and 20 deletions

View File

@ -5603,11 +5603,6 @@ Make device:
Load driver:
.B modprobe tun
If you have Linux 2.2 or earlier, you should obtain version 1.1 of the
TUN/TAP driver from
.I http://vtun.sourceforge.net/tun/
and follow the installation instructions.
.\"*********************************************************
.SH EXAMPLES
Prior to running these examples, you should have OpenVPN installed on two
@ -5628,10 +5623,7 @@ If you installed from RPM, the
.B mknod
step may be omitted, because the RPM install does that for you.
If you have Linux 2.2, you should obtain version 1.1 of the
TUN/TAP driver from
.I http://vtun.sourceforge.net/tun/
and follow the installation instructions.
Only Linux 2.4 and newer are supported.
For other platforms, consult the INSTALL file at
.I http://openvpn.net/install.html

13
tun.c
View File

@ -1127,7 +1127,7 @@ open_tun (const char *dev, const char *dev_type, const char *dev_node, bool ipv6
if ((tt->fd = open (node, O_RDWR)) < 0)
{
msg (M_WARN | M_ERRNO, "Note: Cannot open TUN/TAP dev %s", node);
goto linux_2_2_fallback;
return;
}
/*
@ -1171,7 +1171,7 @@ open_tun (const char *dev, const char *dev_type, const char *dev_node, bool ipv6
if (ioctl (tt->fd, TUNSETIFF, (void *) &ifr) < 0)
{
msg (M_WARN | M_ERRNO, "Note: Cannot ioctl TUNSETIFF %s", dev);
goto linux_2_2_fallback;
return;
}
msg (M_INFO, "TUN/TAP device %s opened", ifr.ifr_name);
@ -1207,15 +1207,6 @@ open_tun (const char *dev, const char *dev_type, const char *dev_node, bool ipv6
tt->actual_name = string_alloc (ifr.ifr_name, NULL);
}
return;
linux_2_2_fallback:
msg (M_INFO, "Note: Attempting fallback to kernel 2.2 TUN/TAP interface");
if (tt->fd >= 0)
{
close (tt->fd);
tt->fd = -1;
}
open_tun_generic (dev, dev_type, dev_node, ipv6, false, true, tt);
}
#else