Print helpful error message on --mktun/--rmtun if not available.

OpenVPN only supports --mktun/--rmtun to create/destroy persistant
tunnels on Linux.  On BSD OSes, "ifconfig tun0 create" can do the
same job, so we do not actually need to support it - but the previous
error message ("unknown option") wasn't helpful.  So always accept
the option now, and on non-supported systems, direct user to manpage.

Trac #85

Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: David Sommerseth <dazo@users.sourceforge.net>
Message-Id: <1430219063-12291-1-git-send-email-gert@greenie.muc.de>
URL: http://article.gmane.org/gmane.network.openvpn.devel/9617
This commit is contained in:
Gert Doering 2015-04-28 13:04:23 +02:00
parent 0e3f894098
commit 4ad2b65d9d
2 changed files with 8 additions and 4 deletions

View file

@ -887,7 +887,6 @@ do_genkey (const struct options * options)
bool
do_persist_tuntap (const struct options *options)
{
#ifdef ENABLE_FEATURE_TUN_PERSIST
if (options->persist_config)
{
/* sanity check on options for --mktun or --rmtun */
@ -901,14 +900,21 @@ do_persist_tuntap (const struct options *options)
)
msg (M_FATAL|M_OPTERR,
"options --mktun or --rmtun should only be used together with --dev");
#ifdef ENABLE_FEATURE_TUN_PERSIST
tuncfg (options->dev, options->dev_type, options->dev_node,
options->persist_mode,
options->username, options->groupname, &options->tuntap_options);
if (options->persist_mode && options->lladdr)
set_lladdr(options->dev, options->lladdr, NULL);
return true;
}
#else
msg( M_FATAL|M_OPTERR,
"options --mktun and --rmtun are not available on your operating "
"system. Please check 'man tun' (or 'tap'), whether your system "
"supports using 'ifconfig %s create' / 'destroy' to create/remove "
"persistant tunnel interfaces.", options->dev );
#endif
}
return false;
}

View file

@ -7023,7 +7023,6 @@ add_option (struct options *options,
options->pkcs11_id_management = true;
}
#endif
#ifdef ENABLE_FEATURE_TUN_PERSIST
else if (streq (p[0], "rmtun"))
{
VERIFY_PERMISSION (OPT_P_GENERAL);
@ -7036,7 +7035,6 @@ add_option (struct options *options,
options->persist_config = true;
options->persist_mode = 1;
}
#endif
else if (streq (p[0], "peer-id"))
{
VERIFY_PERMISSION (OPT_P_PEER_ID);