Always clear the OpenVPN route when using shared key, no matter what the tunnel network "CIDR" is set to, it still needs it.

This commit is contained in:
jim-p 2013-02-25 15:19:06 -05:00
parent 343266ccf7
commit 9bfa57b39b

View File

@ -1034,17 +1034,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_get_settings($mode, $vpnid) {