diff options
author | jim-p <jimp@pfsense.org> | 2011-08-30 09:44:20 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2011-08-30 09:44:20 -0400 |
commit | 1f2f60240c8829c64ad786eb33ecc6ba0cd1d5a2 (patch) | |
tree | e17f9ed425cd3b82d99b6d0142f360c2d016de22 /etc/inc | |
parent | ac429b4257465274d89d3e7f222e81b4c18b7800 (diff) | |
download | pfsense-1f2f60240c8829c64ad786eb33ecc6ba0cd1d5a2.zip pfsense-1f2f60240c8829c64ad786eb33ecc6ba0cd1d5a2.tar.gz |
Fixup OpenVPN status a bit to properly handle SSL servers using a /30 (no server directive) and also be a little more verbose about what is happening, if we can tell.
Diffstat (limited to 'etc/inc')
-rw-r--r-- | etc/inc/openvpn.inc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index 285a65f..ce97469 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -753,7 +753,7 @@ function openvpn_resync_all($interface = "") { } -function openvpn_get_active_servers($type="ssl") { +function openvpn_get_active_servers($type="multipoint") { global $config, $g; $servers = array(); @@ -778,10 +778,13 @@ function openvpn_get_active_servers($type="ssl") { $mode_id = "server{$vpnid}"; $server['mgmt'] = $mode_id; $socket = "unix://{$g['varetc_path']}/openvpn/{$mode_id}.sock"; - if (($server['mode'] == "p2p_shared_key") && ($type == "sharedkey")) + list($tn, $sm) = explode('/', $settings['tunnel_network']); + + if ((($server['mode'] == "p2p_shared_key") || ($sm >= 30) ) && ($type == "p2p")) $servers[] = openvpn_get_client_status($server, $socket); - elseif (($server['mode'] != "p2p_shared_key") && ($type == "ssl")) + elseif (($server['mode'] != "p2p_shared_key") && ($type == "multipoint") && ($sm < 30)) $servers[] = openvpn_get_server_status($server, $socket); + } } return $servers; @@ -903,6 +906,23 @@ function openvpn_get_client_status($client, $socket) { $client['virtual_addr'] = $list[3]; $client['remote_host'] = $list[4]; } + if (strstr($line,"CONNECTING")) { + $client['status']="connecting"; + } + if (strstr($line,"ASSIGN_IP")) { + $client['status']="waiting"; + $list = explode(",", $line); + + $client['connect_time'] = date("D M j G:i:s Y", $list[0]); + $client['virtual_addr'] = $list[3]; + } + if (strstr($line,"RECONNECTING")) { + $client['status']="reconnecting"; + $list = explode(",", $line); + + $client['connect_time'] = date("D M j G:i:s Y", $list[0]); + $client['status'] .= "; " . $list[2]; + } /* parse end of output line */ if (strstr($line, "END") || strstr($line, "ERROR")) break; |