diff options
author | Scott Dale <sdale@pfsense.org> | 2007-07-23 03:20:36 +0000 |
---|---|---|
committer | Scott Dale <sdale@pfsense.org> | 2007-07-23 03:20:36 +0000 |
commit | 981f03e5a9d51174667732340135fd7d1d71ebe9 (patch) | |
tree | 1dceec826ea16ea802b1b842b3051a17c4a7f052 /usr/local/www/widgets/include | |
parent | 81db9b7b4d7c85b1581c7beb93acffcca5462cc1 (diff) | |
download | pfsense-981f03e5a9d51174667732340135fd7d1d71ebe9.zip pfsense-981f03e5a9d51174667732340135fd7d1d71ebe9.tar.gz |
new ipsec widget
Diffstat (limited to 'usr/local/www/widgets/include')
-rw-r--r-- | usr/local/www/widgets/include/ipsec.inc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/usr/local/www/widgets/include/ipsec.inc b/usr/local/www/widgets/include/ipsec.inc new file mode 100644 index 0000000..0a7bb2c --- /dev/null +++ b/usr/local/www/widgets/include/ipsec.inc @@ -0,0 +1,54 @@ +<?php +//set variable for custom title +$ipsec_title = "IPSec"; + +function get_ipsec_tunnel_src($tunnel) { + global $g, $config, $sad; + $if = "WAN"; + if ($tunnel['interface']) { + $iflabels = array('lan' => 'LAN', 'wan' => 'WAN'); + $carpips = find_number_of_needed_carp_interfaces(); + for($j=0; $j<$carpips; $j++) { + $interfaceip = find_interface_ip("carp" . $j); + $iflabels['carp' . $j] = $interfaceip; + } + for ($j = 1; isset($config['interfaces']['opt' . $j]); $j++) { + $realinterface = convert_friendly_interface_to_real_interface_name('opt' . $j); + $iflabels['opt' . $j] = find_interface_ip($realinterface); + } + $interfaceip = $iflabels[$tunnel['interface']]; + } else { + $realinterface = convert_friendly_interface_to_real_interface_name($if); + $interfaceip = find_interface_ip($realinterface); + } + return $interfaceip; +} + +function output_ipsec_tunnel_status($tunnel) { + global $g, $config, $sad; + $if = "WAN"; + $interfaceip = get_ipsec_tunnel_src($tunnel); + $interfaceip = strtolower($interfaceip); + + $foundsrc = false; + $founddst = false; + foreach($sad as $sa) { + $sourceIF = find_ip_interface($sa['src']); + $sourceIF = convert_real_interface_to_friendly_interface_name($sourceIF); + if($sourceIF == $tunnel['interface']) + $foundsrc = true; + if($sa['dst'] == $tunnel['remote-gateway']) + $founddst = true; + } + if($foundsrc && $founddst) { + /* tunnel is up */ + $iconfn = true; + } else { + /* tunnel is down */ + $iconfn = false; + } + return $iconfn; +} + + +?>
\ No newline at end of file |