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;