mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 12:02:28 +02:00
Provide 'dev_type' environment variable to plug-ins and script hooks
Normally OpenVPN is configured with --dev {tun,tap}, but it is also possible to use --dev myvpn instead. In these situations, OpenVPN will request --dev-type as well to be able to set up a tun or tap device properly. The 'dev' environment variable will contain the value provided by --dev. In those cases where the plug-in/script need to behave differently when using a tun device versus using a tap device, there are no possibilities for it to know what kind of device --dev myvpn would be. This patch adds a 'dev_type' environment variable which contains a string of the device type, either automatically discovered based on the --dev name, or set using the --dev-type option. Signed-off-by: David Sommerseth <dazo@users.sourceforge.net> Acked-by: James Yonan <james@openvpn.net>
This commit is contained in:
parent
7fc00d4cbe
commit
a0a547a70d
4
init.c
4
init.c
@ -1303,6 +1303,7 @@ do_open_tun (struct context *c)
|
|||||||
c->plugins,
|
c->plugins,
|
||||||
OPENVPN_PLUGIN_UP,
|
OPENVPN_PLUGIN_UP,
|
||||||
c->c1.tuntap->actual_name,
|
c->c1.tuntap->actual_name,
|
||||||
|
dev_type_string (c->options.dev, c->options.dev_type),
|
||||||
TUN_MTU_SIZE (&c->c2.frame),
|
TUN_MTU_SIZE (&c->c2.frame),
|
||||||
EXPANDED_SIZE (&c->c2.frame),
|
EXPANDED_SIZE (&c->c2.frame),
|
||||||
print_in_addr_t (c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
|
print_in_addr_t (c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
|
||||||
@ -1338,6 +1339,7 @@ do_open_tun (struct context *c)
|
|||||||
c->plugins,
|
c->plugins,
|
||||||
OPENVPN_PLUGIN_UP,
|
OPENVPN_PLUGIN_UP,
|
||||||
c->c1.tuntap->actual_name,
|
c->c1.tuntap->actual_name,
|
||||||
|
dev_type_string (c->options.dev, c->options.dev_type),
|
||||||
TUN_MTU_SIZE (&c->c2.frame),
|
TUN_MTU_SIZE (&c->c2.frame),
|
||||||
EXPANDED_SIZE (&c->c2.frame),
|
EXPANDED_SIZE (&c->c2.frame),
|
||||||
print_in_addr_t (c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
|
print_in_addr_t (c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
|
||||||
@ -1401,6 +1403,7 @@ do_close_tun (struct context *c, bool force)
|
|||||||
c->plugins,
|
c->plugins,
|
||||||
OPENVPN_PLUGIN_DOWN,
|
OPENVPN_PLUGIN_DOWN,
|
||||||
tuntap_actual,
|
tuntap_actual,
|
||||||
|
NULL,
|
||||||
TUN_MTU_SIZE (&c->c2.frame),
|
TUN_MTU_SIZE (&c->c2.frame),
|
||||||
EXPANDED_SIZE (&c->c2.frame),
|
EXPANDED_SIZE (&c->c2.frame),
|
||||||
print_in_addr_t (local, IA_EMPTY_IF_UNDEF, &gc),
|
print_in_addr_t (local, IA_EMPTY_IF_UNDEF, &gc),
|
||||||
@ -1423,6 +1426,7 @@ do_close_tun (struct context *c, bool force)
|
|||||||
c->plugins,
|
c->plugins,
|
||||||
OPENVPN_PLUGIN_DOWN,
|
OPENVPN_PLUGIN_DOWN,
|
||||||
tuntap_actual,
|
tuntap_actual,
|
||||||
|
NULL,
|
||||||
TUN_MTU_SIZE (&c->c2.frame),
|
TUN_MTU_SIZE (&c->c2.frame),
|
||||||
EXPANDED_SIZE (&c->c2.frame),
|
EXPANDED_SIZE (&c->c2.frame),
|
||||||
print_in_addr_t (local, IA_EMPTY_IF_UNDEF, &gc),
|
print_in_addr_t (local, IA_EMPTY_IF_UNDEF, &gc),
|
||||||
|
3
misc.c
3
misc.c
@ -174,6 +174,7 @@ run_up_down (const char *command,
|
|||||||
const struct plugin_list *plugins,
|
const struct plugin_list *plugins,
|
||||||
int plugin_type,
|
int plugin_type,
|
||||||
const char *arg,
|
const char *arg,
|
||||||
|
const char *dev_type,
|
||||||
int tun_mtu,
|
int tun_mtu,
|
||||||
int link_mtu,
|
int link_mtu,
|
||||||
const char *ifconfig_local,
|
const char *ifconfig_local,
|
||||||
@ -191,6 +192,8 @@ run_up_down (const char *command,
|
|||||||
setenv_int (es, "tun_mtu", tun_mtu);
|
setenv_int (es, "tun_mtu", tun_mtu);
|
||||||
setenv_int (es, "link_mtu", link_mtu);
|
setenv_int (es, "link_mtu", link_mtu);
|
||||||
setenv_str (es, "dev", arg);
|
setenv_str (es, "dev", arg);
|
||||||
|
if (dev_type)
|
||||||
|
setenv_str (es, "dev_type", dev_type);
|
||||||
|
|
||||||
if (!ifconfig_local)
|
if (!ifconfig_local)
|
||||||
ifconfig_local = "";
|
ifconfig_local = "";
|
||||||
|
1
misc.h
1
misc.h
@ -93,6 +93,7 @@ void run_up_down (const char *command,
|
|||||||
const struct plugin_list *plugins,
|
const struct plugin_list *plugins,
|
||||||
int plugin_type,
|
int plugin_type,
|
||||||
const char *arg,
|
const char *arg,
|
||||||
|
const char *dev_type,
|
||||||
int tun_mtu,
|
int tun_mtu,
|
||||||
int link_mtu,
|
int link_mtu,
|
||||||
const char *ifconfig_local,
|
const char *ifconfig_local,
|
||||||
|
Loading…
Reference in New Issue
Block a user