summaryrefslogtreecommitdiffstats
path: root/src/openvpn/tun.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/openvpn/tun.c')
-rw-r--r--src/openvpn/tun.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c
index 088527e..291d8c9 100644
--- a/src/openvpn/tun.c
+++ b/src/openvpn/tun.c
@@ -402,23 +402,27 @@ void
do_ifconfig_setenv (const struct tuntap *tt, struct env_set *es)
{
struct gc_arena gc = gc_new ();
- bool tun = is_tun_p2p (tt);
const char *ifconfig_local = print_in_addr_t (tt->local, 0, &gc);
const char *ifconfig_remote_netmask = print_in_addr_t (tt->remote_netmask, 0, &gc);
/*
* Set environmental variables with ifconfig parameters.
*/
- setenv_str (es, "ifconfig_local", ifconfig_local);
- if (tun)
+ if (tt->did_ifconfig_setup)
{
- setenv_str (es, "ifconfig_remote", ifconfig_remote_netmask);
- }
- else
- {
- const char *ifconfig_broadcast = print_in_addr_t (tt->broadcast, 0, &gc);
- setenv_str (es, "ifconfig_netmask", ifconfig_remote_netmask);
- setenv_str (es, "ifconfig_broadcast", ifconfig_broadcast);
+ bool tun = is_tun_p2p (tt);
+
+ setenv_str (es, "ifconfig_local", ifconfig_local);
+ if (tun)
+ {
+ setenv_str (es, "ifconfig_remote", ifconfig_remote_netmask);
+ }
+ else
+ {
+ const char *ifconfig_broadcast = print_in_addr_t (tt->broadcast, 0, &gc);
+ setenv_str (es, "ifconfig_netmask", ifconfig_remote_netmask);
+ setenv_str (es, "ifconfig_broadcast", ifconfig_broadcast);
+ }
}
if (tt->did_ifconfig_ipv6_setup)