Merge pull request #4825 from nxhack/node-hid_fix_depends
[feed/packages.git] / net / shadowsocks-libev / files / shadowsocks-libev.init
index 0142cc1d8a3d71ca42af9ba554fdea5c519c75f7..1b08f41df2cee4ff6c94018c41e2bd071304d0b5 100644 (file)
@@ -28,9 +28,7 @@ ss_mkjson_() {
        local func
 
        for func in "$@"; do
-               if ! "$func"; then
-                       return 1
-               fi
+               "$func" || return 1
        done
 }
 
@@ -83,7 +81,7 @@ ss_mkjson_ss_redir_conf() {
        ss_mkjson_server_conf || return 1
        [ "$disable_sni" = 0 ] && disable_sni=false || disable_sni=true
        cat <<-EOF
-               ${q}disable_sni${q}: $disable_sni,
+               "disable_sni": $disable_sni,
        EOF
 }
 
@@ -122,7 +120,7 @@ ss_xxx() {
                procd_set_param file "$confjson"
                procd_set_param respawn
                procd_close_instance
-               ss_rules_cb "$cfg"
+               ss_rules_cb
        fi
 }
 
@@ -147,6 +145,7 @@ ss_rules() {
        local bin="$ss_bindir/ss-rules"
        local cfgtype
        local local_port_tcp local_port_udp
+       local args
 
        [ -x "$bin" ] || return 1
        config_get cfgtype "$cfg" TYPE
@@ -160,6 +159,7 @@ ss_rules() {
        eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
        [ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1
        ss_redir_servers="$(echo "$ss_redir_servers" | tr ' ' '\n' | sort -u)"
+       [ "$dst_forward_recentrst" = 0 ] || args="$args --dst-forward-recentrst"
 
        "$bin" \
                        -s "$ss_redir_servers" \
@@ -177,11 +177,12 @@ ss_rules() {
                        --src-checkdst "$src_ips_checkdst" \
                        --ifnames "$ifnames" \
                        --ipt-extra "$ipt_args" \
+                       $args \
                || "$bin" -f
 }
 
 start_service() {
-       local cfgtype="$1"
+       local cfgtype
 
        mkdir -p "$ss_confdir"
        config_load shadowsocks-libev
@@ -284,17 +285,18 @@ validate_ss_rules_section() {
                'disabled:bool:0' \
                'redir_tcp:uci("shadowsocks-libev", "@ss_redir")' \
                'redir_udp:uci("shadowsocks-libev", "@ss_redir")' \
-               'src_ips_bypass:list(or(ip4addr,cidr4))' \
-               'src_ips_forward:list(or(ip4addr,cidr4))' \
-               'src_ips_checkdst:list(or(ip4addr,cidr4))' \
+               'src_ips_bypass:or(ip4addr,cidr4)' \
+               'src_ips_forward:or(ip4addr,cidr4)' \
+               'src_ips_checkdst:or(ip4addr,cidr4)' \
                'dst_ips_bypass_file:file' \
-               'dst_ips_bypass:list(or(ip4addr,cidr4))' \
+               'dst_ips_bypass:or(ip4addr,cidr4)' \
                'dst_ips_forward_file:file' \
-               'dst_ips_forward:list(or(ip4addr,cidr4))' \
+               'dst_ips_forward:or(ip4addr,cidr4)' \
                'src_default:or("bypass", "forward", "checkdst"):checkdst' \
                'dst_default:or("bypass", "forward"):bypass' \
                'local_default:or("bypass", "forward", "checkdst"):bypass' \
-               'ifnames:list(maxlength(15))' \
+               'dst_forward_recentrst:bool:0' \
+               'ifnames:maxlength(15)' \
                'ipt_args:string'
 }