From 9904a1da4c06a311d87a3faa08ca46fb893b6068 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Sat, 11 Apr 2020 11:22:21 +0200 Subject: [PATCH] interfaces: make rc.newwanipv6 more clever... ... since b8a3c3dd3f6c can mimic the behaviour of get_interface_ipv6() we can now call interfaces_primary_address6() instead of the less educated find_interface_ipv6*() equivalents. Probably quite some people with WAN aliases run into this issue where renewal doesn't work because rc.newwanipv6 latches on to the VIP instead of the primary address. --- src/etc/inc/interfaces.inc | 5 ++--- src/etc/rc.newwanipv6 | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 6832e315d..130f5f792 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3983,10 +3983,9 @@ function get_interface_ipv6($interface = 'wan', $ifconfig_details = null) return get_configured_carp_interface_list($interface, 'inet6'); } - $realif = get_real_interface($interface, 'inet6'); + list ($ipv6) = interfaces_primary_address6($interface, null, $ifconfig_details); - return isset($config['interfaces'][$interface]['dhcp6prefixonly']) ? - find_interface_ipv6_ll($realif, $ifconfig_details) : find_interface_ipv6($realif, $ifconfig_details); + return $ipv6; } /****f* interfaces/is_interface_wireless diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index ce54a4244..7f10bf795 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -50,13 +50,13 @@ log_error("IP renewal is starting on '{$argument}'"); if (empty($argument)) { $interface = 'wan'; $interface_real = get_real_interface($interface, 'inet6'); - $ip = get_interface_ipv6($interface); } else { $interface = convert_real_interface_to_friendly_interface_name($argument); $interface_real = $argument; - $ip = get_interface_ipv6($interface); } +$ip = get_interface_ipv6($interface); + if (!isset($config['interfaces'][$interface]['enable'])) { log_error("Interface '{$interface}' is disabled or empty, nothing to do."); return;