diff --git a/src/opnsense/scripts/dhcp/prefixes.php b/src/opnsense/scripts/dhcp/prefixes.php index d92ae7d50..d7ae6400c 100755 --- a/src/opnsense/scripts/dhcp/prefixes.php +++ b/src/opnsense/scripts/dhcp/prefixes.php @@ -2,7 +2,7 @@ + * Copyright (C) 2022-2024 Franco Fichtner * Copyright (C) 2012 Seth Mos * All rights reserved. * @@ -61,7 +61,10 @@ foreach (new SplFileObject($leases_file) as $line) { break; case 'ia-pd': if (!empty($ia_pd) && !empty($active)) { - $duid_arr[$duid]['prefix'] = $ia_pd; + if (empty($duid_arr[$duid]['prefix'])) { + $duid_arr[$duid]['prefix'] = []; + } + $duid_arr[$duid]['prefix'][] = $ia_pd; } break; } @@ -115,8 +118,10 @@ if (!empty($dhcpd_log)) { /* collect active leases */ foreach ($duid_arr as $entry) { if (!empty($entry['prefix']) && !empty($entry['address'])) { - /* new or reassigned takes priority */ - $routes[$entry['prefix']] = $entry['address']; + foreach ($entry['prefix'] as $prefix) { + /* new or reassigned takes priority */ + $routes[$prefix] = $entry['address']; + } } }