diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 22c1ca45c..6bdb58cf3 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2786,10 +2786,28 @@ REQUEST) ARGS="\${ARGS} -a \${NAMESERVER}" done /usr/local/sbin/ifctl -i ${wanif} -6nd \${ARGS} - /usr/local/sbin/ifctl -i ${wanif} -6sd \${new_domain_name:+"-a \${new_domain_name}"} + ARGS= + for DOMAIN in \${new_domain_name}; do + ARGS="\${ARGS} -a \${DOMAIN}" + done + /usr/local/sbin/ifctl -i ${wanif} -6sd \${ARGS} /usr/local/sbin/ifctl -i ${wanif} -6pd \${PDINFO:+"-a \${PDINFO}"} /usr/local/sbin/configctl -d interface newipv6 {$wanif} ;; +INFOREQ) + /usr/bin/logger -t dhcp6c "dhcp6c \$REASON on {$wanif} - running newipv6" + ARGS= + for NAMESERVER in \${new_domain_name_servers}; do + ARGS="\${ARGS} -a \${NAMESERVER}" + done + /usr/local/sbin/ifctl -i ${wanif} -6nd \${ARGS} + ARGS= + for DOMAIN in \${new_domain_name}; do + ARGS="\${ARGS} -a \${DOMAIN}" + done + /usr/local/sbin/ifctl -i ${wanif} -6sd \${ARGS} + /usr/local/sbin/configctl -d interface newipv6 {$wanif} + ;; EXIT|RELEASE) /usr/bin/logger -t dhcp6c "dhcp6c \$REASON on {$wanif} - running dns reload" /usr/local/sbin/ifctl -i ${wanif} -6nd @@ -2828,7 +2846,7 @@ EOF; /* merge configs and prepare single instance of dhcp6c for startup */ foreach (legacy_config_get_interfaces(['enable' => true, 'virtual' => false]) as $_interface => $_wancfg) { - if (empty($_wancfg['ipaddrv6']) || $_wancfg['ipaddrv6'] != 'dhcp6') { + if (empty($_wancfg['ipaddrv6']) || ($_wancfg['ipaddrv6'] != 'dhcp6' && $_wancfg['ipaddrv6'] != 'slaac')) { continue; }