From 171d5cda9f4d05c07a34a20e548ca7dd36444a5c Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Tue, 19 Jan 2021 12:23:14 +0100 Subject: [PATCH] interfaces: treat deprecated addresses as non-primary --- src/etc/inc/interfaces.inc | 4 ++-- src/etc/inc/interfaces.lib.inc | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index d2034d197..d99f6df96 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -1,7 +1,7 @@ + * Copyright (C) 2015-2021 Franco Fichtner * Copyright (C) 2004-2008 Scott Ullrich * Copyright (C) 2008-2009 Ermal Luçi * Copyright (C) 2005 Espen Johansen @@ -4621,7 +4621,7 @@ function interfaces_primary_address6($interface, $realif = null, $ifconfig_detai $interfaces_a = config_read_array('interfaces'); foreach (interfaces_addresses($realif, true, $ifconfig_details) as $tmpaddr => $info) { - if ($info['family'] != 'inet6') { + if ($info['family'] != 'inet6' || $info['deprecated']) { continue; } diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index 5116cc271..2f72e3bda 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -1,7 +1,7 @@ + * Copyright (c) 2015-2021 Franco Fichtner * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -279,12 +279,19 @@ function legacy_interfaces_details($intf = null) } elseif (strpos($line, "\tinet6 ") !== false) { // IPv6 information $addr = strtok($line_parts[1], '%'); - $tmp = array('ipaddr' => $addr, 'link-local' => strpos($addr, 'fe80:') === 0, 'tunnel' => false); + $tmp = array( + 'deprecated' => false, + 'ipaddr' => $addr, + 'link-local' => strpos($addr, 'fe80:') === 0, + 'tunnel' => false, + ); for ($i = 0; $i < count($line_parts) - 1; ++$i) { if ($line_parts[$i] == 'prefixlen') { $tmp['subnetbits'] = intval($line_parts[$i + 1]); } elseif ($line_parts[$i] == 'vhid') { $tmp['vhid'] = $line_parts[$i + 1]; + } elseif ($line_parts[$i] == 'deprecated') { + $tmp['deprectated'] = true; } if ($line_parts[$i] == '-->') { $tmp['tunnel'] = true;