From cab341129a94f599dd19beff1656abd616aeb29b Mon Sep 17 00:00:00 2001 From: Stephan de Wit Date: Tue, 8 Aug 2023 14:38:20 +0200 Subject: [PATCH] dhcpv6: fix previous --- .../OPNsense/DHCPv4/Api/LeasesController.php | 30 ++++++++------- .../OPNsense/DHCPv6/Api/LeasesController.php | 38 ++++++++++--------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/DHCPv4/Api/LeasesController.php b/src/opnsense/mvc/app/controllers/OPNsense/DHCPv4/Api/LeasesController.php index e9ecc7849..cc1b19f4e 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/DHCPv4/Api/LeasesController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/DHCPv4/Api/LeasesController.php @@ -91,20 +91,22 @@ class LeasesController extends ApiControllerBase /* handle static leases */ $statics = []; - foreach ($sleases["dhcpd"] as $slease) { - $static = []; - $static['address'] = $slease['ipaddr'] ?? ''; - $static['type'] = 'static'; - $static['mac'] = $slease['mac'] ?? ''; - $static['starts'] = ''; - $static['ends'] = ''; - $static['hostname'] = $slease['hostname'] ?? ''; - $static['descr'] = $slease['descr'] ?? ''; - $static['if_descr'] = ''; - $static['if'] = $slease['interface'] ?? ''; - $static['state'] = 'active'; - $static['status'] = in_array(strtolower($static['mac']), $online) ? 'online' : 'offline'; - $statics[] = $static; + if ($sleases) { + foreach ($sleases["dhcpd"] as $slease) { + $static = []; + $static['address'] = $slease['ipaddr'] ?? ''; + $static['type'] = 'static'; + $static['mac'] = $slease['mac'] ?? ''; + $static['starts'] = ''; + $static['ends'] = ''; + $static['hostname'] = $slease['hostname'] ?? ''; + $static['descr'] = $slease['descr'] ?? ''; + $static['if_descr'] = ''; + $static['if'] = $slease['interface'] ?? ''; + $static['state'] = 'active'; + $static['status'] = in_array(strtolower($static['mac']), $online) ? 'online' : 'offline'; + $statics[] = $static; + } } $leases = array_merge($leases, $statics); diff --git a/src/opnsense/mvc/app/controllers/OPNsense/DHCPv6/Api/LeasesController.php b/src/opnsense/mvc/app/controllers/OPNsense/DHCPv6/Api/LeasesController.php index e6ded108c..8cb41ca1b 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/DHCPv6/Api/LeasesController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/DHCPv6/Api/LeasesController.php @@ -89,21 +89,23 @@ class LeasesController extends ApiControllerBase $sleases = json_decode($backend->configdRun('dhcpd6 list static 0'), true); $statics = []; - foreach ($sleases['dhcpd'] as $slease) { - $static = [ - 'address' => $slease['ipaddrv6'] ?? '', - 'type' => 'static', - 'cltt' => '', - 'ends' => '', - 'descr' => $slease['descr'] ?? '', - 'iaid' => '', - 'duid' => $slease['duid'] ?? '', - 'if_descr' => '', - 'if' => $slease['interface'] ?? '', - 'state' => 'active', - 'status' => in_array(strtolower($slease['ipaddrv6']), $online) ? 'online' : 'offline' - ]; - $statics[] = $static; + if ($sleases) { + foreach ($sleases['dhcpd'] as $slease) { + $static = [ + 'address' => $slease['ipaddrv6'] ?? '', + 'type' => 'static', + 'cltt' => '', + 'ends' => '', + 'descr' => $slease['descr'] ?? '', + 'iaid' => '', + 'duid' => $slease['duid'] ?? '', + 'if_descr' => '', + 'if' => $slease['interface'] ?? '', + 'state' => 'active', + 'status' => in_array(strtolower($slease['ipaddrv6']), $online) ? 'online' : 'offline' + ]; + $statics[] = $static; + } } $leases = array_merge($leases, $statics); @@ -178,14 +180,16 @@ class LeasesController extends ApiControllerBase } /* include interface */ + $intf = ''; + $intf_descr = ''; if (!empty($lease['if'])) { $intf = $lease['if']; - $intf_descr = $raw_intfs[$lease['if']]; + $intf_descr = $config->interfaces->{$lease['if']}->descr ?: strtoupper($intf); } else { foreach ($if_ranges as $if_name => $if_range) { if (!empty($lease['address']) && Util::isIPInCIDR($lease['address'], $if_range)) { $intf = $if_name; - $intf_descr = $raw_intfs[$if_name]; + $intf_descr = (string)$config->interfaces->$if_name->descr ?: strtoupper($if_name); break; } }