diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 105299733..d3e6916ad 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -958,7 +958,7 @@ function interface_bring_down($interface = "wan", $ifacecfg = false) /* clear stale state files associated with this interface */ @unlink("/tmp/{$realifv6}_nameserverv6"); - @unlink("/tmp/{$realifv6}_pdinfov6"); + @unlink("/tmp/{$realifv6}_prefixv6"); @unlink("/tmp/{$realifv6}_routerv6"); @unlink("/tmp/{$realifv6}_searchdomainv6"); @unlink("/tmp/{$realif}_nameserver"); @@ -2771,25 +2771,20 @@ fi case \$REASON in REQUEST) /usr/bin/logger -t dhcp6c "dhcp6c \$REASON on {$wanif} - running newipv6" - if [ -n "\${PDINFO}" ]; then - echo \${PDINFO} > /tmp/{$wanif}_pdinfov6 - else - rm -f /tmp/{$wanif}_pdinfov6 - fi ARGS="-i ${wanif} -6nd" for NAMESERVER in \${new_domain_name_servers}; do ARGS="\${ARGS} -a \${NAMESERVER}" done /usr/local/sbin/ifctl \${ARGS} - ARGS="-i ${wanif} -6sd \${new_domain_name:+"-a \${new_domain_name}"}" - /usr/local/sbin/ifctl \${ARGS} + /usr/local/sbin/ifctl -i ${wanif} -6sd \${new_domain_name:+"-a \${new_domain_name}"} + /usr/local/sbin/ifctl -i ${wanif} -6pd \${PDINFO:+"-a \${PDINFO}"} /usr/local/sbin/configctl -d interface newipv6 {$wanif} ;; EXIT|RELEASE) /usr/bin/logger -t dhcp6c "dhcp6c \$REASON on {$wanif} - running newipv6" /usr/local/sbin/ifctl -i ${wanif} -6nd /usr/local/sbin/ifctl -i ${wanif} -6sd - rm -f /tmp/{$wanif}_pdinfov6 + /usr/local/sbin/ifctl -i ${wanif} -6pd /usr/local/sbin/configctl -d interface newipv6 {$wanif} ;; *) @@ -2844,9 +2839,9 @@ if [ -z "\${1}" ]; then exit 0 fi if [ -n "\${2}" ]; then - echo \${2} > /tmp/\${1}_routerv6 echo \${2} > /tmp/\${1}_defaultgwv6 fi +/usr/local/sbin/ifctl -i \${1} -6rd \${2:+"-a \${2}"} if [ -f /var/run/dhcp6c.pid ]; then if ! /bin/pkill -0 -F /var/run/dhcp6c.pid; then rm -f /var/run/dhcp6c.pid @@ -3919,9 +3914,9 @@ function get_interfaces_info($include_unlinked = false) } /* XXX there are more magic files */ - $aux = @file_get_contents("/tmp/{$ifinfo['ifv6']}_pdinfov6"); + $aux = @file_get_contents("/tmp/{$ifinfo['ifv6']}_prefixv6"); if (!empty($aux)) { - $ifinfo['pdinfo'] = $aux; + $ifinfo['prefixv6'] = $aux; } $ifinfotmp = $all_intf_stats[$ifinfo['if']]; diff --git a/src/opnsense/scripts/interfaces/dhclient-script b/src/opnsense/scripts/interfaces/dhclient-script index 87e843cb2..7082f9273 100755 --- a/src/opnsense/scripts/interfaces/dhclient-script +++ b/src/opnsense/scripts/interfaces/dhclient-script @@ -219,12 +219,9 @@ add_new_resolv_conf() { for nameserver in ${new_domain_name_servers}; do ARGS="${ARGS} -a ${nameserver}" done - /usr/local/sbin/ifctl ${ARGS} - ARGS="-i ${interface} -4sd ${new_domain_name:+"-a ${new_domain_name}"}" - - /usr/local/sbin/ifctl ${ARGS} + /usr/local/sbin/ifctl -i ${interface} -4sd ${new_domain_name:+"-a ${new_domain_name}"} return 0 } diff --git a/src/opnsense/scripts/interfaces/nameserver.sh b/src/opnsense/scripts/interfaces/nameserver.sh index e75e879fe..e8bf9127e 100755 --- a/src/opnsense/scripts/interfaces/nameserver.sh +++ b/src/opnsense/scripts/interfaces/nameserver.sh @@ -48,7 +48,7 @@ IF= # default to IPv4 with nameserver mode set -- -4 -n ${@} -while getopts 46a:di:ns OPT; do +while getopts 46a:di:nprs OPT; do case ${OPT} in 4) AF=inet @@ -71,6 +71,14 @@ while getopts 46a:di:ns OPT; do DO_MODE="-n" MD="nameserver" ;; + p) + DO_MODE="-p" + MD="prefix" + ;; + r) + DO_MODE="-r" + MD="router" + ;; s) DO_MODE="-s" MD="searchdomain" diff --git a/src/www/status_interfaces.php b/src/www/status_interfaces.php index 5c98e6a2d..11bee79bf 100644 --- a/src/www/status_interfaces.php +++ b/src/www/status_interfaces.php @@ -296,10 +296,10 @@ include("head.inc"); - + - +