From da601f8e08b4569d15b59f1e8a113d337f03a9a0 Mon Sep 17 00:00:00 2001 From: PiBa-NL Date: Mon, 1 Oct 2012 14:45:59 +0200 Subject: Allow for changing OpenVPN TUN to TAP device mode without reboot. --- etc/inc/openvpn.inc | 7 ++++++- usr/local/www/vpn_openvpn_server.php | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index bddb5c8..687c7ce 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -710,7 +710,12 @@ function openvpn_delete($mode, & $settings) { $vpnid = $settings['vpnid']; $mode_id = $mode.$vpnid; - $tunname = "tun{$vpnid}"; + if (isset($settings['dev_mode'])) + $tunname = "{$settings['dev_mode']}{$vpnid}"; + else { /* defaults to tun */ + $tunname = "tun{$vpnid}"; + } + if ($mode == "server") $devname = "ovpns{$vpnid}"; else diff --git a/usr/local/www/vpn_openvpn_server.php b/usr/local/www/vpn_openvpn_server.php index c187878..7971478 100644 --- a/usr/local/www/vpn_openvpn_server.php +++ b/usr/local/www/vpn_openvpn_server.php @@ -314,6 +314,9 @@ if ($_POST) { $server = array(); + if ($id && $pconfig['dev_mode'] <> $a_server[$id]['dev_mode']) + openvpn_delete('server', $a_server[$id]);// delete(rename) old interface so a new TUN or TAP interface can be created. + if ($vpnid) $server['vpnid'] = $vpnid; else -- cgit v1.1