From c39ef68e580c65dfeedf42bd6d660da486f14b24 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 11 Mar 2022 15:16:49 +0100 Subject: [PATCH] interfaces: add ifctl -r and -p for router and prefix files We add this here to ensure consistency between the functionalities of these interface helper files. Not all instances have been converted, but they can be as time permits. Tested on IPv6. While here settle on "prefix" for pdinfo as a thing since we renamed it already anyway. --- src/etc/inc/interfaces.inc | 19 +++++++------------ .../scripts/interfaces/dhclient-script | 5 +---- src/opnsense/scripts/interfaces/nameserver.sh | 10 +++++++++- src/www/status_interfaces.php | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) 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"); - + - +