";
- $tabscounter = 0;
- foreach ($tab_array as $ta) {
- $dashpos = strpos($ta[2],'-');
- $tabname = $ta[2] . "-tab";
- $tabclass = substr($ta[2],0,$dashpos);
- $tabclass = $tabclass . "-class";
- if ($ta[1] == true) {
- $tabActive = "table-cell";
- $tabNonActive = "none";
- }
- else {
- $tabActive = "none";
- $tabNonActive = "table-cell";
- }
- echo "
";
+ $tabscounter = 0;
+ foreach ($tab_array as $ta) {
+ $dashpos = strpos($ta[2],'-');
+ $tabname = $ta[2] . "-tab";
+ $tabclass = substr($ta[2],0,$dashpos);
+ $tabclass = $tabclass . "-class";
+ if ($ta[1] == true) {
+ $tabActive = "table-cell";
+ $tabNonActive = "none";
+ } else {
+ $tabActive = "none";
+ $tabNonActive = "table-cell";
+ }
+ echo "
";
+ echo " {$ta[0]}";
+ echo " ";
+ echo "
";
+ echo "
";
+ echo " {$ta[0]}";
+ echo " ";
+ echo "
";
+ }
}
$ipsec_detail_array = array();
@@ -73,49 +69,31 @@ if (isset($config['ipsec']['phase1'])) {
$tab_array[1] = array(gettext("Tunnels"), false, "ipsec-tunnel");
$tab_array[2] = array(gettext("Mobile"), false, "ipsec-mobile");
display_widget_tabs($tab_array);
+ // TODO: temporary disabled ( https://github.com/opnsense/core/issues/139 ) ipsec_dump_mobile();
+ $mobile = array();
- $spd = ipsec_dump_spd();
- $sad = ipsec_dump_sad();
- $mobile = array(); // TODO: temporary disabled ( https://github.com/opnsense/core/issues/139 ) ipsec_dump_mobile();
- $ipsec_status = ipsec_smp_dump_status();
-
- $activecounter = 0;
- $inactivecounter = 0;
-
- if (isset($config['ipsec']['phase2'])) {
- foreach ($config['ipsec']['phase2'] as $ph2ent) {
- if ($ph2ent['remoteid']['type'] == "mobile") {
- continue;
+ // parse configured tunnels
+ $ipsec_status = json_decode(configd_run("ipsec list_status"), true);
+ $ipsec_tunnels = array();
+ $activetunnels = 0;
+ if ($ipsec_status != null) {
+ foreach ($ipsec_status as $status_key => $status_value) {
+ if (isset($status_value['children'])) {
+ foreach($status_value['children'] as $child_status_key => $child_status_value) {
+ $ipsec_tunnels[$child_status_key] = array('active' => false,
+ 'local-addrs' => $status_value['local-addrs'],
+ 'remote-addrs' => $status_value['remote-addrs'],
+ );
+ $ipsec_tunnels[$child_status_key]['local-ts'] = implode(',', $child_status_value['local-ts']);
+ $ipsec_tunnels[$child_status_key]['remote-ts'] = implode(',', $child_status_value['remote-ts']);
+ }
}
- ipsec_lookup_phase1($ph2ent, $ph1ent);
- $ipsecstatus = false;
-
- $tun_disabled = "false";
- $foundsrc = false;
- $founddst = false;
-
- if (isset($ph1ent['disabled']) || isset($ph2ent['disabled'])) {
- $tun_disabled = "true";
- continue;
+ foreach ($status_value['sas'] as $sas_key => $sas_value) {
+ foreach ($sas_value['child-sas'] as $child_sa_key => $child_sa_value) {
+ $ipsec_tunnels[$child_sa_key]['active'] = true;
+ $activetunnels++;
+ }
}
- if (isset($ipsec_status['query']['ikesalist']['ikesa']) && isset($ph1ent['ikeid']) && ipsec_phase1_status($ipsec_status['query']['ikesalist']['ikesa'], $ph1ent['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']),
- 'dest' => $ph1ent['remote-gateway'],
- 'remote-subnet' => ipsec_idinfo_to_text($ph2ent['remoteid']),
- 'descr' => $ph2ent['descr'],
- 'status' => $iconfn,
- 'disabled' => $tun_disabled
- );
}
}
}
@@ -124,132 +102,93 @@ if (isset($config['ipsec']['phase2'])) {
?>
-
+
+
+
+ | = gettext('Active Tunnels');?> |
+ = gettext('Inactive Tunnels');?> |
+ = gettext('Mobile Users');?> |
+
+
+
+
+ | = $activetunnels; ?> |
+ = (count($ipsec_tunnels) - $activetunnels); ?> |
+ 0 |
+
+
+
-
-
-
-
-
-
-
-
- ";
- $spane = "";
- } else {
- $spans = $spane = "";
- }
-
- ?>
-
-
-
-
-
-
-
-
-
-
- ()
-
-
-
- ";
-
- ?>
-
-
-
-
+
+
+
+ | = gettext('Connection');?> |
+ = gettext('Source');?> |
+ = gettext('Destination');?> |
+ = gettext('Status');?> |
+
+
+
+ $ipsec) :
+?>
+
+
+ =$ipsec['local-addrs'];?>
+ (=$ipsec['remote-addrs'];?>)
+ |
+ =$ipsec['local-ts'];?> |
+ =$ipsec['remote-ts'];?> |
+
+ if($ipsec['active']):
+?>
+
+ else:
+?>
+
+ endif;
+?>
+ |
+
+
+
+
-
+
+
+
+ | = gettext('User');?> |
+ = gettext('IP');?> |
+ = gettext('Status');?> |
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
= gettext('Note: There are no configured IPsec Tunnels') ?>
-
-
+
+
= sprintf(gettext('You can configure your IPsec %shere%s.'), '', ''); ?>
-
- |
-
-
+
+ |
+
+