diff options
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/openvpn.inc | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index 0e6bc28..d1cecf1 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -1224,17 +1224,24 @@ function openvpn_clear_route($mode, $settings) { return; list($ip, $cidr) = explode('/', $settings['tunnel_network']); $mask = gen_subnet_mask($cidr); + $clear_route = false; + switch($settings['mode']) { + case 'shared_key': + $clear_route = true; + break; case 'p2p_tls': case 'p2p_shared_key': - case 'shared_key': - if (!empty($ip) && !empty($mask) && ($cidr == 30)) { - list($ip1, $ip2) = openvpn_get_interface_ip($ip, $mask); - $ip_to_clear = ($mode == "server") ? $ip1 : $ip2; - mwexec("/sbin/route -q delete {$ip_to_clear}"); - } + if (!empty($ip) && !empty($mask) && ($cidr == 30)) + $clear_route = true; break; } + + if ($clear_route) { + list($ip1, $ip2) = openvpn_get_interface_ip($ip, $mask); + $ip_to_clear = ($mode == "server") ? $ip1 : $ip2; + mwexec("/sbin/route -q delete {$ip_to_clear}"); + } } function openvpn_gen_routes($value, $ipproto = "ipv4", $push = false) { |