diff --git a/shadowsocks-libev/files/shadowsocks-libev.init-nft b/shadowsocks-libev/files/shadowsocks-libev.init-nft index cf344260b..becc703e5 100755 --- a/shadowsocks-libev/files/shadowsocks-libev.init-nft +++ b/shadowsocks-libev/files/shadowsocks-libev.init-nft @@ -163,7 +163,8 @@ ss_redir_ports() { port=$(uci -q get shadowsocks-libev.$1.local_port) server=$(uci -q get shadowsocks-libev.$1.server) disabled=$(uci -q get shadowsocks-libev.$1.disabled) - if [ "$disabled" != "1" ] && ([ "$server" = "$2" ] || [ "$2" = "" ]); then + server_disabled=$(uci -q get shadowsocks-libev.${server}.disabled) + if [ "$disabled" != "1" ] && [ "$server_disabled" != "1" ]; then if [ "$port" -lt "$min_ss_redir_ports" ]; then min_ss_redir_ports=$port fi @@ -195,7 +196,7 @@ ss_rules_nft_gen() { min_ss_redir_ports="65535" max_ss_redir_ports="0" config_load shadowsocks-libev - config_foreach ss_redir_ports ss_redir $cfgrulesserver + config_foreach ss_redir_ports ss_redir if [ "$min_ss_redir_ports" != "$max_ss_redir_ports" ]; then all_ss_redir_ports=$min_ss_redir_ports-$max_ss_redir_ports else diff --git a/shadowsocks-rust/files/shadowsocks-rust.init-nft b/shadowsocks-rust/files/shadowsocks-rust.init-nft index f83311968..7eac4c4a9 100755 --- a/shadowsocks-rust/files/shadowsocks-rust.init-nft +++ b/shadowsocks-rust/files/shadowsocks-rust.init-nft @@ -136,7 +136,8 @@ ss_redir_ports() { port=$(uci -q get shadowsocks-rust.$1.local_port) server=$(uci -q get shadowsocks-rust.$1.server) disabled=$(uci -q get shadowsocks-rust.$1.disabled) - if [ "$disabled" != "1" ] && ([ "$server" = "$2" ] || [ "$2" = "" ]); then + server_disabled=$(uci -q get shadowsocks-rust.${server}.disabled) + if [ "$disabled" != "1" ] && [ "$server_disabled" != "1" ]; then if [ "$port" -lt "$min_ss_redir_ports" ]; then min_ss_redir_ports=$port fi @@ -165,7 +166,7 @@ ss_rules_nft_gen() { min_ss_redir_ports="65535" max_ss_redir_ports="0" config_load shadowsocks-rust - config_foreach ss_redir_ports ss_redir $cfgrulesserver + config_foreach ss_redir_ports ss_redir [ "$max_ss_redir_ports" = "0" ] && return 2 if [ "$min_ss_redir_ports" != "$max_ss_redir_ports" ]; then all_ss_redir_ports=$min_ss_redir_ports-$max_ss_redir_ports