Our code works on "very old Linux" (Fedora-1), but needs a #define
for TUNSETGROUP to compile. Everything else is there.
While at it, fix TUNSETGROUP error message.
Reported-By: noloader on Trac
Trac: #1152
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <20200909153725.1158-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg20932.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit a4e0ac0604460ea2431acb7481d6ffb7a3fc6298)
| ... | ... |
@@ -1993,6 +1993,11 @@ open_tun(const char *dev, const char *dev_type, const char *dev_node, struct tun |
| 1993 | 1993 |
|
| 1994 | 1994 |
#ifdef ENABLE_FEATURE_TUN_PERSIST |
| 1995 | 1995 |
|
| 1996 |
+/* TUNSETGROUP appeared in 2.6.23 */ |
|
| 1997 |
+#ifndef TUNSETGROUP |
|
| 1998 |
+# define TUNSETGROUP _IOW('T', 206, int)
|
|
| 1999 |
+#endif |
|
| 2000 |
+ |
|
| 1996 | 2001 |
void |
| 1997 | 2002 |
tuncfg(const char *dev, const char *dev_type, const char *dev_node, |
| 1998 | 2003 |
int persist_mode, const char *username, const char *groupname, |
| ... | ... |
@@ -2032,7 +2037,7 @@ tuncfg(const char *dev, const char *dev_type, const char *dev_node, |
| 2032 | 2032 |
} |
| 2033 | 2033 |
else if (ioctl(tt->fd, TUNSETGROUP, platform_state_group.gr->gr_gid) < 0) |
| 2034 | 2034 |
{
|
| 2035 |
- msg(M_ERR, "Cannot ioctl TUNSETOWNER(%s) %s", groupname, dev); |
|
| 2035 |
+ msg(M_ERR, "Cannot ioctl TUNSETGROUP(%s) %s", groupname, dev); |
|
| 2036 | 2036 |
} |
| 2037 | 2037 |
} |
| 2038 | 2038 |
close_tun(tt, ctx); |