From ce981cf04731eb22adb02f86138c9354d6234bd0 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sun, 16 Feb 2020 13:04:21 +0800 Subject: [PATCH] passwall: optimize subscribe calc hashkey --- .../luci-app-passwall/root/usr/share/passwall/iptables.sh | 6 +++--- .../luci-app-passwall/root/usr/share/passwall/subscribe.lua | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package/lienol/luci-app-passwall/root/usr/share/passwall/iptables.sh b/package/lienol/luci-app-passwall/root/usr/share/passwall/iptables.sh index b81ba285e6..08167e38a1 100755 --- a/package/lienol/luci-app-passwall/root/usr/share/passwall/iptables.sh +++ b/package/lienol/luci-app-passwall/root/usr/share/passwall/iptables.sh @@ -225,9 +225,6 @@ add_firewall_rule() { lan_ip=$(ifconfig br-lan | grep "inet addr" | awk '{print $2}' | awk -F : '{print $2}') #路由器lan IP lan_ipv4=$(ip address show br-lan | grep -w "inet" | awk '{print $2}') #当前LAN IPv4段 [ -n "$lan_ipv4" ] && ipset -! add $IPSET_LANIPLIST $lan_ipv4 >/dev/null 2>&1 & - - # 过滤所有节点IP - config_foreach filter_vpsip "nodes" $ipt_n -N PSW $ipt_n -A PSW $(dst $IPSET_LANIPLIST) -j RETURN @@ -511,6 +508,9 @@ add_firewall_rule() { $ipt_m -A PSW_ACL -p udp -m multiport --dport $UDP_REDIR_PORTS -m comment --comment "Default" -j $(get_action_chain $PROXY_MODE)1 } fi + + # 过滤所有节点IP,暂时关闭,节点一多会解析很久导致启动超慢。。。 + # config_foreach filter_vpsip "nodes" } del_firewall_rule() { diff --git a/package/lienol/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/package/lienol/luci-app-passwall/root/usr/share/passwall/subscribe.lua index 04b3b757ea..82c84a1d97 100644 --- a/package/lienol/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/package/lienol/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -102,7 +102,6 @@ local function processData(szType, content, add_mode) add_mode = add_mode, is_sub = (add_mode and add_mode == "导入") and 0 or 1 } - result.hashkey = type(content) == 'string' and md5(content) or md5(jsonStringify(content)) if szType == 'ssr' then local dat = split(content, "/\\?") local hostInfo = split(dat[1], ':') @@ -225,6 +224,11 @@ local function processData(szType, content, add_mode) if not result.remarks then result.remarks = result.address .. ':' .. result.port end + -- remarks 不参与 hashkey 计算 + local remarks = result.remarks + result.remarks = nil + result.hashkey = md5(jsonStringify(result)) + result.remarks = remarks return result end -- wget