diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index bdf0f48a1..f0533038a 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3796,7 +3796,7 @@ function link_interface_to_track6($wanif, $update = false) { $list = array(); - if (empty($wanif)) { + if (empty($wanif) || empty($wanif['ipaddrv6'])) { return $list; } @@ -3814,6 +3814,10 @@ function link_interface_to_track6($wanif, $update = false) } } + if ($wanif['ipaddrv6'] == 'slaac' && $update && count($list)) { + services_radvd_configure(); + } + return $list; } diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip index 127b67212..5c40c4c81 100755 --- a/src/etc/rc.newwanip +++ b/src/etc/rc.newwanip @@ -115,7 +115,7 @@ system_resolvconf_generate(); system_hosts_generate(); if (isset($config['interfaces'][$interface]['ipaddrv6'])) { - switch($config['interfaces'][$interface]['ipaddrv6']) { + switch ($config['interfaces'][$interface]['ipaddrv6']) { case '6to4': interface_6to4_configure($interface, $config['interfaces'][$interface]); break; @@ -127,7 +127,6 @@ if (isset($config['interfaces'][$interface]['ipaddrv6'])) { if (isset($config['interfaces'][$interface]['dhcp6usev4iface'])) { interface_dhcpv6_prepare($interface, $config['interfaces'][$interface]); interface_dhcpv6_configure($interface, $config['interfaces'][$interface]); - services_radvd_configure(); } break; }