From 63d55a7ec190f71f7027cd450e78e663ff987cb7 Mon Sep 17 00:00:00 2001 From: Tokisaki-Galaxy Date: Tue, 7 Oct 2025 14:40:03 +0800 Subject: [PATCH] luci-mod-status: Fix legacy rule detection false positive Refine legacy rule detection to avoid false positives generated by the iptables-nft compatibility layer on fw4 systems. The logic now prioritizes `iptables-legacy-save` for accuracy, while retaining `iptables-save` as a fallback to ensure backward compatibility with fw3. Signed-off-by: Tokisaki-Galaxy --- modules/luci-mod-status/Makefile | 2 +- .../luci-static/resources/view/status/nftables.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/luci-mod-status/Makefile b/modules/luci-mod-status/Makefile index 26b7c6c6b1..ee00c1d763 100644 --- a/modules/luci-mod-status/Makefile +++ b/modules/luci-mod-status/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI Status Pages LUCI_DEPENDS:=+luci-base +libiwinfo +rpcd-mod-iwinfo -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_BUILD_DEPENDS:=iwinfo PKG_LICENSE:=Apache-2.0 diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js index e619c3e744..40f7f714be 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js @@ -146,8 +146,16 @@ return view.extend({ load: function() { return Promise.all([ L.resolveDefault(fs.exec_direct('/usr/sbin/nft', [ '--terse', '--json', 'list', 'ruleset' ], 'json'), {}), - L.resolveDefault(fs.exec_direct('/usr/sbin/iptables-save'), ''), - L.resolveDefault(fs.exec_direct('/usr/sbin/ip6tables-save'), '') + fs.stat('/usr/sbin/iptables-legacy-save').then(function(stat) { + return L.resolveDefault(fs.exec_direct('/usr/sbin/iptables-legacy-save'), ''); + }).catch(function(err) { + return L.resolveDefault(fs.exec_direct('/usr/sbin/iptables-save'), ''); + }), + fs.stat('/usr/sbin/ip6tables-legacy-save').then(function(stat) { + return L.resolveDefault(fs.exec_direct('/usr/sbin/ip6tables-legacy-save'), ''); + }).catch(function(err) { + return L.resolveDefault(fs.exec_direct('/usr/sbin/ip6tables-save'), ''); + }) ]); }, -- 2.30.2