diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index ce68b4664..3869f905e 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -77,32 +77,40 @@ _intf_rule() { if [ "$(iptables -w 40 -t mangle -L | grep ss_rules_dst_bypass_$intf)" = "" ]; then iptables-restore --wait=60 --noflush <<-EOF *mangle - -A PREROUTING -m set --match-set ss_rules_dst_bypass_$intf dst -j MARK --set-mark 0x539$count + -I PREROUTING 1 -m set --match-set ss_rules_dst_bypass_$intf dst -j MARK --set-mark 0x539$count + COMMIT + EOF + fi + if [ "$(iptables -w 40 -t nat -L | grep ss_rules_pre_src)" != "" ] && [ "$(iptables -w 40 -t nat -L | grep ss_rules_dst_bypass_$intf)" = "" ]; then + iptables-restore --wait=60 --noflush <<-EOF + *nat + -I ss_rules_dst 1 -m set --match-set ss_rules_dst_bypass_$intf dst -j RETURN + -I ss_rules_local_out 1 -m set --match-set ss_rules_dst_bypass_$intf dst -j RETURN + -I ss_rules_pre_src 1 -m set --match-set ss_rules_dst_bypass_$intf dst -j MARK --set-xmark 0x539$count + -I ss_rules_pre_src 2 -m set --match-set ss_rules_dst_bypass_$intf dst -j RETURN + -I ss_rules_pre_src 3 -m mark --mark 0x539$count -j RETURN + -I ss_rules_local_out 1 -m mark --mark 0x539$count -j RETURN COMMIT EOF - if [ "$(iptables -w 40 -t nat -L | grep ss_rules_pre_src)" != "" ]; then - iptables-restore --wait=60 --noflush <<-EOF - *nat - -I ss_rules_pre_src 1 -m mark --mark 0x539$count -j RETURN - -I ss_rules_local_out 1 -m mark --mark 0x539$count -j RETURN - COMMIT - EOF - fi fi if [ "$(ip6tables -w 40 -t mangle -L | grep ss_rules6_dst_bypass_$intf)" = "" ]; then ip6tables-restore --wait=60 --noflush <<-EOF *mangle - -A PREROUTING -m set --match-set ss_rules6_dst_bypass_$intf dst -j MARK --set-mark 0x539$count + -I PREROUTING 1 -m set --match-set ss_rules6_dst_bypass_$intf dst -j MARK --set-mark 0x539$count + COMMIT + EOF + fi + if [ "$(ip6tables -w 40 -t nat -L | grep ss_rules6_pre_src)" != "" ] && [ "$(ip6tables -w 40 -t nat -L | grep ss_rules6_dst_bypass_$intf)" = "" ]; then + ip6tables-restore --wait=60 --noflush <<-EOF + *nat + -I ss_rules6_dst 1 -m set --match-set ss_rules6_dst_bypass_$intf dst -j RETURN + -I ss_rules6_local_out 1 -m set --match-set ss_rules6_dst_bypass_$intf dst -j RETURN + -I ss_rules6_pre_src 1 -m set --match-set ss_rules6_dst_bypass_$intf dst -j MARK --set-xmark 0x539$count + -I ss_rules6_pre_src 2 -m set --match-set ss_rules6_dst_bypass_$intf dst -j RETURN + -I ss_rules6_pre_src 3 -m mark --mark 0x539$count -j RETURN + -I ss_rules6_local_out 1 -m mark --mark 0x539$count -j RETURN COMMIT EOF - if [ "$(ip6tables -w 40 -t nat -L | grep ss_rules6_pre_src)" != "" ]; then - ip6tables-restore --wait=60 --noflush <<-EOF - *nat - -I ss_rules6_pre_src 1 -m mark --mark 0x539$count -j RETURN - -I ss_rules6_local_out 1 -m mark --mark 0x539$count -j RETURN - COMMIT - EOF - fi fi uci -q set omr-bypass.$intf=interface uci -q set omr-bypass.$intf.id=$count @@ -179,9 +187,11 @@ start_service() { } service_triggers() { - procd_add_reload_trigger omr-bypass network shadowsocks-libev + PROCD_RELOAD_DELAY=1000 + procd_add_reload_trigger omr-bypass shadowsocks-libev + procd_add_raw_trigger "interface.*" 2000 /etc/init.d/omr-bypass restart } reload_service() { - start + restart } diff --git a/luci-app-omr-bypass/root/etc/uci-defaults/41_omr-bypass b/luci-app-omr-bypass/root/etc/uci-defaults/41_omr-bypass index c3367a552..d75998031 100644 --- a/luci-app-omr-bypass/root/etc/uci-defaults/41_omr-bypass +++ b/luci-app-omr-bypass/root/etc/uci-defaults/41_omr-bypass @@ -49,9 +49,9 @@ if [ -n "$(uci -q get dhcp.dnsmasq[0].ipset)" ]; then } fi -if [ "$(uci -q get ucitrack.@shadowsocks-libev[-1].affects | grep omr-bypass)" != "" ]; then +if [ "$(uci -q get ucitrack.@shadowsocks-libev[-1].affects | grep omr-bypass)" = "" ]; then uci -q batch <<-EOF >/dev/null - del_list ucitrack.@shadowsocks-libev[-1].affects=omr-bypass + add_list ucitrack.@shadowsocks-libev[-1].affects=omr-bypass EOF fi rm -f /tmp/luci-indexcache diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 034ac5348..a9602eaee 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -97,7 +97,11 @@ interface_multipath_settings() { [ "$mode" = "master" ] && { ip route replace default via $gateway dev $iface } - ifconfig $iface txqueuelen 90 > /dev/null 2>&1 + [ "$mode" = "off" ] && { + ifconfig $iface txqueuelen 90 > /dev/null 2>&1 + } || { + ifconfig $iface txqueuelen 10000 > /dev/null 2>&1 + } } load_interfaces() {