From 45cdab67aafc23de8c5c7e84c3d948ecb6cb6c58 Mon Sep 17 00:00:00 2001 From: ShanStone <31815718+ShanStone@users.noreply.github.com> Date: Sun, 16 Jul 2023 14:38:13 +0800 Subject: [PATCH] luci: optimise generation nftset cache --- luci-app-passwall/root/usr/share/passwall/nftables.sh | 4 ++-- .../root/usr/share/passwall/rule_update.lua | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/luci-app-passwall/root/usr/share/passwall/nftables.sh b/luci-app-passwall/root/usr/share/passwall/nftables.sh index 005165828..26350926d 100755 --- a/luci-app-passwall/root/usr/share/passwall/nftables.sh +++ b/luci-app-passwall/root/usr/share/passwall/nftables.sh @@ -705,7 +705,7 @@ add_firewall_rule() { gen_nftset $NFTSET_GFW ipv4_addr gen_nftset $NFTSET_LANLIST ipv4_addr $(gen_lanlist) if [ -f $RULES_PATH/chnroute.nft ] && [ -s $RULES_PATH/chnroute.nft ] && [ $(awk 'END{print NR}' $RULES_PATH/chnroute.nft) -ge 8 ]; then - echolog "使用缓存加载chnroute..." + #echolog "使用缓存加载chnroute..." nft -f $RULES_PATH/chnroute.nft else gen_nftset $NFTSET_CHN ipv4_addr $(cat $RULES_PATH/chnroute | tr -s '\n' | grep -v "^#") @@ -719,7 +719,7 @@ add_firewall_rule() { gen_nftset $NFTSET_GFW6 ipv6_addr gen_nftset $NFTSET_LANLIST6 ipv6_addr $(gen_lanlist_6) if [ -f $RULES_PATH/chnroute6.nft ] && [ -s $RULES_PATH/chnroute6.nft ] && [ $(awk 'END{print NR}' $RULES_PATH/chnroute6.nft) -ge 8 ]; then - echolog "使用缓存加载chnroute6..." + #echolog "使用缓存加载chnroute6..." nft -f $RULES_PATH/chnroute6.nft else gen_nftset $NFTSET_CHN6 ipv6_addr $(cat $RULES_PATH/chnroute6 | tr -s '\n' | grep -v "^#") diff --git a/luci-app-passwall/root/usr/share/passwall/rule_update.lua b/luci-app-passwall/root/usr/share/passwall/rule_update.lua index d6a3f6166..81c1b5834 100755 --- a/luci-app-passwall/root/usr/share/passwall/rule_update.lua +++ b/luci-app-passwall/root/usr/share/passwall/rule_update.lua @@ -67,10 +67,11 @@ end local function gen_cache(set_name, ip_type, input_file, output_file) local tmp_dir = "/tmp/" local tmp_file = output_file .. "_tmp" - gen_nftset(set_name, ip_type, tmp_file, input_file) - luci.sys.call("nft list set inet fw4 " ..set_name.. " > " ..output_file) - luci.sys.call("nft flush set inet fw4 " ..set_name) - luci.sys.call("nft delete set inet fw4 " ..set_name) + local tmp_set_name = set_name .. "_tmp" + gen_nftset(tmp_set_name, ip_type, tmp_file, input_file) + luci.sys.call("nft list set inet fw4 " ..tmp_set_name.. " | sed 's/" ..tmp_set_name.. "/" ..set_name.. "/g' | cat > " ..output_file) + luci.sys.call("nft flush set inet fw4 " ..tmp_set_name) + luci.sys.call("nft delete set inet fw4 " ..tmp_set_name) end -- curl