From 814999d4219667c0c48382fc31e0cff118895f88 Mon Sep 17 00:00:00 2001 From: zhao Date: Wed, 4 Jun 2025 19:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20files/60-luci-firewall-nat?= =?UTF-8?q?6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhao --- files/60-luci-firewall-nat6 | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/files/60-luci-firewall-nat6 b/files/60-luci-firewall-nat6 index e2ac22a..69da198 100644 --- a/files/60-luci-firewall-nat6 +++ b/files/60-luci-firewall-nat6 @@ -1,12 +1,19 @@ #!/bin/sh -[ -f "/etc/config/ucitrack" ] && { -uci -q batch <<-EOF >/dev/null - delete ucitrack.@firewall[2] - add ucitrack firewall - set ucitrack.@firewall[2].init=nat6 - commit ucitrack -EOF -} +[ "$(uci -q get firewall.@defaults[0].nat6)" != "1" ] && exit 0 -exit 0 +dhcpv6_interface=$(uci -q show network | grep dhcpv6 | grep -o 'network\.\([^\.]*\)' | sed 's/network.//') +IFS=$'\n' +for interface_name in $dhcpv6_interface +do + device=$(uci -q show network.$interface_name.device | grep -o "'.*'" | awk -F"'" '{print $2}') + if [ $(ifconfig $device | grep -c "inet6 addr") -gt 0 ]; then + interface_name=$interface_name + fi +done + +[ "$INTERFACE" = "$interface_name" ] || exit 0 + +if [ "$ACTION" = ifup ] || [ "$ACTION" = iflink ] || [ "$ACTION" = ifupdate ] || [ "$ACTION" = reload ]; then + /etc/init.d/nat6 restart +fi