From 48e4fde62edddd3b774ebe9c9919181b03c642ea Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 21 Mar 2019 16:38:24 +0000 Subject: [PATCH] unbound: replace legacy_getall_interface_addresses() #3355 While here use a cheaper single lookup for all interfaces at once. --- src/etc/inc/plugins.inc.d/unbound.inc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/etc/inc/plugins.inc.d/unbound.inc b/src/etc/inc/plugins.inc.d/unbound.inc index af3c8d169..b8687de97 100644 --- a/src/etc/inc/plugins.inc.d/unbound.inc +++ b/src/etc/inc/plugins.inc.d/unbound.inc @@ -722,15 +722,13 @@ function unbound_acls_subnets() /* add our networks for active interfaces including localhost */ $subnets = array('127.0.0.1/8', '::1/64'); - foreach ($active_interfaces as $ubif => $ubextra) { - foreach (legacy_getall_interface_addresses(get_real_interface($ubif)) as $subnet) { - if (!empty($ubextra['net4']) && is_subnetv4($subnet)) { - $subnet = explode('/', $subnet)[0] . '/' . $ubextra['net4']; - } elseif (!empty($ubextra['net6']) && is_subnetv6($subnet)) { - $subnet = explode('/', $subnet)[0] . '/' . $ubextra['net6']; - } - $subnets[] = $subnet; + foreach (interfaces_addresses(array_keys($active_interfaces), true) as $subnet => $info) { + if (!empty($active_interfaces[$info['name']]['net4']) && is_subnetv4($subnet)) { + $subnet = explode('/', $subnet)[0] . '/' . $active_interfaces[$info['name']]['net4']; + } elseif (!empty($active_interfaces[$info['name']]['net6']) && is_subnetv6($subnet)) { + $subnet = explode('/', $subnet)[0] . '/' . $active_interfaces[$info['name']]['net6']; } + $subnets[] = $subnet; } return $subnets;