From 07da679525674d1d4c2ff7f8bca8a6b20a64dffb Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 12 Nov 2018 12:16:06 +0100 Subject: [PATCH] interfaces: repair link-local read, use it directly --- src/etc/inc/interfaces.inc | 13 ++++--------- src/etc/inc/interfaces.lib.inc | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 85e015bc8..59d8490b0 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3949,16 +3949,11 @@ function find_interface_ipv6_ll($interface, $exists = false) return null; } - $ifinfo = legacy_getall_interface_addresses($interface); + $ifinfo = legacy_get_interface_addresses($interface); - foreach ($ifinfo as $line) { - if (strstr($line, ':')) { - $parts = explode('/', $line); - if (is_linklocal($parts[0])) { - /* return first address found */ - return $parts[0]; - } - } + if (isset($ifinfo['ipaddr6_ll'])) { + /* return first address found */ + return $ifinfo['ipaddr6_ll']; } return null; diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index bb8c098e7..e660a2c33 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -416,7 +416,7 @@ function legacy_get_interface_addresses($ifs) if (empty($addrs['ipaddr6']) && empty($ipv6['link-local'])) { $addrs['ipaddr6'] = $ipv6['ipaddr']; $addrs['subnetbits6'] = $ipv6['subnetbits']; - } elseif (empty($addrs['lladdr6']) && !empty($ipv6['link-local'])) { + } elseif (empty($addrs['ipaddr6_ll']) && !empty($ipv6['link-local'])) { $addrs['ipaddr6_ll'] = $ipv6['ipaddr']; $addrs['subnetbits6_ll'] = $ipv6['subnetbits']; }