diff --git a/shadowsocks-libev/files/shadowsocks-libev.init b/shadowsocks-libev/files/shadowsocks-libev.init index 83ce95d81..4bb1c68d3 100644 --- a/shadowsocks-libev/files/shadowsocks-libev.init +++ b/shadowsocks-libev/files/shadowsocks-libev.init @@ -252,11 +252,19 @@ rules_exist() { return 1 } +server_state() { + config_get disabled "$1" disabled "0" + [ "$disabled" = "0" ] && enabled="1" +} + rules_up() { rules_exist && return 0 [ "$(uci -q get shadowsocks-libev.ss_rules.disabled)" = "1" ] && return 0 logger -t "Shadowsocks" "Rules UP" + enabled="0" config_load shadowsocks-libev + config_foreach server_state server + [ "$enabled" = "0" ] && return for cfgtype in ss_redir; do config_foreach ss_rules_restart "$cfgtype" "$cfgtype" done