From 79f4c9700982022bb0ec7e5b380c93acbc5e875a Mon Sep 17 00:00:00 2001 From: Chris Buechler Date: Tue, 25 Nov 2014 13:25:24 -0600 Subject: fix IPsec widget status display after recent changes broke it. Ticket #4045 --- usr/local/www/widgets/widgets/ipsec.widget.php | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'usr/local/www/widgets/widgets') diff --git a/usr/local/www/widgets/widgets/ipsec.widget.php b/usr/local/www/widgets/widgets/ipsec.widget.php index dcedf59..e510005 100644 --- a/usr/local/www/widgets/widgets/ipsec.widget.php +++ b/usr/local/www/widgets/widgets/ipsec.widget.php @@ -63,18 +63,23 @@ if (isset($config['ipsec']['phase1'])){?> ipsec_lookup_phase1($ph2ent,$ph1ent); if (!isset($ph1ent['disabled']) && !isset($ph2ent['disabled'])) { - if (is_array($ipsec_status['query']) && is_array($ipsec_status['query']['ikesalist']) && - is_array($ipsec_status['query']['ikesalist']['ikesa']) && - ipsec_phase1_status($ipsec_status['query']['ikesalist']['ikesa'], $ph1ent['ikeid'])) { - /* tunnel is up */ - $iconfn = "true"; - $activecounter++; - } else { - /* tunnel is down */ - $iconfn = "false"; - $inactivecounter++; + is_array($ipsec_status['query']['ikesalist']['ikesa'])) { + foreach ($ipsec_status['query']['ikesalist']['ikesa'] as $ikeid => $ikesa) { + if ($ph1ent['ikeid'] == substr($ikesa['peerconfig'], 3)) { + $ikeid = $ikesa['id']; + if (ipsec_phase1_status($ipsec_status['query']['ikesalist']['ikesa'], $ikeid)) { + /* tunnel is up */ + $iconfn = "true"; + $activecounter++; + } else { + /* tunnel is down */ + $iconfn = "false"; + $inactivecounter++; + } + } + } } $ipsec_detail_array[] = array('src' => convert_friendly_interface_to_friendly_descr($ph1ent['interface']), -- cgit v1.1