From a45daec4abfac4b36558bc6e46e10be2eeae1d15 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 27 May 2024 20:18:20 +0200 Subject: [PATCH] dhcpd: take into account that multple ia-pd can be delegated #7484 --- src/opnsense/scripts/dhcp/prefixes.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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']; + } } }