mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
Fix slow boot when omr-bypass is used
This commit is contained in:
parent
832eabb742
commit
8db06a50a2
3 changed files with 30 additions and 10 deletions
|
@ -1,2 +1,2 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
/etc/init.d/omr-bypass restart
|
/etc/init.d/omr-bypass reload
|
||||||
|
|
|
@ -28,15 +28,19 @@ _bypass_domain() {
|
||||||
|
|
||||||
[ -z "$intf" ] && intf="all"
|
[ -z "$intf" ] && intf="all"
|
||||||
if [ -n "$domain" ]; then
|
if [ -n "$domain" ]; then
|
||||||
resolve=$(dig a +timeout=3 +nocmd +noall +answer $domain | awk '{print $5}')
|
logger -t "omr-bypass" "Get IPs of $domain..."
|
||||||
for ip in $resolve; do
|
if [ -z $BOOT ]; then
|
||||||
_bypass_ip $ip $intf
|
resolve=$(dig a +timeout=3 +nocmd +noall +answer $domain | awk '{print $5}')
|
||||||
done
|
for ip in $resolve; do
|
||||||
resolve=$(dig aaaa +timeout=3 +nocmd +noall +answer $domain | awk '{print $5}')
|
_bypass_ip $ip $intf
|
||||||
for ip in $resolve; do
|
done
|
||||||
_bypass_ip $ip $intf
|
resolve=$(dig aaaa +timeout=3 +nocmd +noall +answer $domain | awk '{print $5}')
|
||||||
done
|
for ip in $resolve; do
|
||||||
|
_bypass_ip $ip $intf
|
||||||
|
done
|
||||||
|
fi
|
||||||
uci -q add_list dhcp.@dnsmasq[0].ipset="/$domain/omr_rules_dst_bypass_$intf,omr_rules6_dst_bypass_$intf"
|
uci -q add_list dhcp.@dnsmasq[0].ipset="/$domain/omr_rules_dst_bypass_$intf,omr_rules6_dst_bypass_$intf"
|
||||||
|
logger -t "omr-bypass" "Get IPs of $domain... Done"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,6 +144,11 @@ _bypass_ip_set() {
|
||||||
_bypass_ip $ip $interface
|
_bypass_ip $ip $interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boot() {
|
||||||
|
BOOT=1
|
||||||
|
start "$@"
|
||||||
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
local count
|
local count
|
||||||
logger -t "omr-bypass" "Starting OMR-ByPass..."
|
logger -t "omr-bypass" "Starting OMR-ByPass..."
|
||||||
|
@ -225,6 +234,13 @@ start_service() {
|
||||||
logger -t "omr-bypass" "OMR-ByPass is running"
|
logger -t "omr-bypass" "OMR-ByPass is running"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
iptables-save --counters | grep -v omr-bypass | iptables-restore --counters
|
||||||
|
for setname in $(ipset -n list | grep "omr_"); do
|
||||||
|
ipset destroy "$setname" 2>/dev/null || true
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
PROCD_RELOAD_DELAY=1000
|
PROCD_RELOAD_DELAY=1000
|
||||||
procd_add_reload_trigger omr-bypass
|
procd_add_reload_trigger omr-bypass
|
||||||
|
@ -232,5 +248,6 @@ service_triggers() {
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
reload_service() {
|
||||||
restart
|
[ "$(ipset -n list | grep omr_)" = "" ] && return 0
|
||||||
|
start
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,7 @@ ss_mkjson_server_conf_() {
|
||||||
ss_mkjson_common_conf() {
|
ss_mkjson_common_conf() {
|
||||||
[ "$ipv6_first" = 0 ] && ipv6_first=false || ipv6_first=true
|
[ "$ipv6_first" = 0 ] && ipv6_first=false || ipv6_first=true
|
||||||
[ "$fast_open" = 0 ] && fast_open=false || fast_open=true
|
[ "$fast_open" = 0 ] && fast_open=false || fast_open=true
|
||||||
|
[ "$no_delay" = 0 ] && no_delay=false || no_delay=true
|
||||||
[ "$reuse_port" = 0 ] && reuse_port=false || reuse_port=true
|
[ "$reuse_port" = 0 ] && reuse_port=false || reuse_port=true
|
||||||
[ "$mptcp" = 0 ] && mptcp=false || mptcp=true
|
[ "$mptcp" = 0 ] && mptcp=false || mptcp=true
|
||||||
[ "$syslog" = 0 ] && syslog=false || syslog=true
|
[ "$syslog" = 0 ] && syslog=false || syslog=true
|
||||||
|
@ -69,6 +70,7 @@ ss_mkjson_common_conf() {
|
||||||
"use_syslog": $syslog,
|
"use_syslog": $syslog,
|
||||||
"ipv6_first": $ipv6_first,
|
"ipv6_first": $ipv6_first,
|
||||||
"fast_open": $fast_open,
|
"fast_open": $fast_open,
|
||||||
|
"no_delay": $no_delay,
|
||||||
"mptcp": $mptcp,
|
"mptcp": $mptcp,
|
||||||
"reuse_port": $reuse_port,
|
"reuse_port": $reuse_port,
|
||||||
${local_address:+${q}local_address${q}: ${q}$local_address${q},}
|
${local_address:+${q}local_address${q}: ${q}$local_address${q},}
|
||||||
|
@ -330,6 +332,7 @@ rules_exist() {
|
||||||
|
|
||||||
rules_up() {
|
rules_up() {
|
||||||
rules_exist && return 0
|
rules_exist && return 0
|
||||||
|
[ "$(ps w | grep ss- | grep -v ss-)" = "" ] && return 0
|
||||||
logger -t "Shadowsocks" "Rules UP"
|
logger -t "Shadowsocks" "Rules UP"
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
for cfgtype in ss_redir; do
|
for cfgtype in ss_redir; do
|
||||||
|
|
Loading…
Reference in a new issue