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']; }