1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00
This commit is contained in:
suyuan 2024-07-25 17:03:25 +08:00 committed by GitHub
commit 0abbcfea02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 40 additions and 9 deletions

View file

@ -32,5 +32,6 @@ start_service() {
procd_open_instance "monitor"
procd_set_param command /usr/sbin/ModemManager-monitor
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
procd_set_param nice "${nice:--10}"
procd_close_instance
}

View file

@ -37,6 +37,30 @@ _ping_server() {
}
}
_ping_server_intf() {
local host=$1
local valid_ip6=$(valid_subnet6 "$host")
for intf in $(multipath 2>/dev/null | awk '/default/ {print $1}'); do
local k=0
while [ "$server_ping" = false ] && [ "$k" -le "$retry" ]; do
ret=$(ping \
-w "$OMR_TRACKER_TIMEOUT" \
-c 1 \
-q \
"${host}"
-I "$intf" \
"${host}"
)
echo "$ret" | grep -sq " 0% packet loss" && {
server_ping=true
}
k=$((k+1))
sleep "${intervaltries}"
done
done
}
_check_server() {
local host=$1
local port=$2
@ -155,6 +179,9 @@ _check_master() {
#_ping_server $serverip
#_check_server $serverip $port
_check_server_intf $serverip $port
[ "$server_ping" = false ] && {
_ping_server_intf $serverip
}
[ "$server_ping" = true ] && {
oneserverup="1"
}
@ -265,11 +292,11 @@ _check_master() {
config_foreach _get_server_name server "$ip"
[ -n "$servername" ] && config_foreach _disable_redir ss_redir "$servername" "shadowsocks-rust"
if [ -n "$(uci -q get openvpn.omr.remote | grep $ip)" ]; then
uci -q batch <<-EOF >/dev/null
del_list openvpn.omr.remote="$ip"
EOF
fi
#if [ -n "$(uci -q get openvpn.omr.remote | grep $ip)" ]; then
# uci -q batch <<-EOF >/dev/null
# del_list openvpn.omr.remote="$ip"
# EOF
#fi
OMR_TRACKER_STATUS_MSG="No answer to ping and to API check"
@ -350,6 +377,9 @@ _check_backup() {
#_ping_server $serverip
#_check_server $serverip $port
_check_server_intf $serverip $port
[ "$server_ping" = false ] && {
_ping_server_intf $serverip
}
[ "$server_ping" = true ] && {
oneserverup="1"
}

View file

@ -744,7 +744,6 @@ interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e
if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ] || [ "$OMR_TRACKER_INTERFACE" = "omr6in4" ]; then
if [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then
uci -q set openmptcprouter.omr.vpn='up'
uci -q commit openmptcprouter
fi
if [ "$(uci -q get openmptcprouter.settings.shadowsocksudp)" = "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ -n "$(uci -q get shadowsocks-libev.sss0)" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.redir_udp)" = "hi1" ]; then
_log "Tunnel up disable use of ShadowSocks for UDP"
@ -808,8 +807,8 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om
#else
# uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(date +"%s")
#fi
[ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter
fi
[ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter
nbserver=0
piholeenabled=0
config_load openmptcprouter
@ -849,7 +848,6 @@ if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR
fi
if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up'
uci -q commit openmptcprouter
dns_flush
fi
@ -958,7 +956,7 @@ if [ "$multipath_config" = "master" ]; then
[ "$(pgrep -f openmptcprouter-vps)" = "" ] && {
/etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 &
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(date +"%s")
uci -q commit openmptcprouter.$OMR_TRACKER_INTERFACE
#uci -q commit openmptcprouter.$OMR_TRACKER_INTERFACE
}
fi
multipath_config="on"
@ -1070,4 +1068,6 @@ if [ "$(sysctl -qen net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ] || [ "$(sysct
fi
}
fi
[ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter
#ubus call network reload