mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Add GRE tracker
This commit is contained in:
parent
1882a94f45
commit
0cc5f3622a
2 changed files with 77 additions and 0 deletions
46
omr-tracker/files/bin/omr-tracker-gre
Executable file
46
omr-tracker/files/bin/omr-tracker-gre
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
||||||
|
|
||||||
|
name=$0
|
||||||
|
basename="$(basename $0)"
|
||||||
|
|
||||||
|
_log() {
|
||||||
|
logger -p daemon.info -t "${basename}" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_ping_server() {
|
||||||
|
local host=$1
|
||||||
|
ret=$(ping \
|
||||||
|
-w "$OMR_TRACKER_TIMEOUT" \
|
||||||
|
-c 1 \
|
||||||
|
-q \
|
||||||
|
"${host}"
|
||||||
|
) && echo "$ret" | grep -sq " 0% packet loss" && {
|
||||||
|
server_ping=true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_ping_tunnel() {
|
||||||
|
local name=$1
|
||||||
|
config_get gateway $1 gateway
|
||||||
|
config_get ifname $1 ifname
|
||||||
|
config_get disabled $1 disabled
|
||||||
|
[ "$(echo $ifname | grep omrip)" != "" ] && [ -n "$gateway" ] && [ "$disabled" != "1" ] && {
|
||||||
|
_ping_server $gateway
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
timeout=${OMR_TRACKER_TIMEOUT:-5}
|
||||||
|
interval=${OMR_TRACKER_INTERVAL:-10}
|
||||||
|
intervaltries=${OMR_TRACKER_INTERVAL_TRIES:-2}
|
||||||
|
retry=${OMR_TRACKER_TRIES:-4}
|
||||||
|
waittest=${OMR_TRACKER_WAIT_TEST:-0}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
server_ping=false
|
||||||
|
config_load network
|
||||||
|
config_foreach _ping_tunnel interface
|
||||||
|
sleep "${interval}"
|
||||||
|
done
|
|
@ -103,6 +103,28 @@ _launch_server_tracker() {
|
||||||
procd_close_instance
|
procd_close_instance
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_launch_gre_tracker() {
|
||||||
|
local hosts timeout tries interval interval_tries options type enabled wait_test
|
||||||
|
_validate_section "defaults" "defaults"
|
||||||
|
_validate_section "gre" "gre"
|
||||||
|
|
||||||
|
[ "${enabled}" = "0" ] && return
|
||||||
|
[ -z "${interval_tries}" ] && interval_tries=1
|
||||||
|
|
||||||
|
procd_open_instance
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
procd_set_param command /bin/omr-tracker-gre "$1" $options
|
||||||
|
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
|
||||||
|
procd_append_param env "OMR_TRACKER_TRIES=$tries"
|
||||||
|
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
|
||||||
|
procd_append_param env "OMR_TRACKER_INTERVAL_TRIES=$interval_tries"
|
||||||
|
procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
|
||||||
|
procd_set_param limits nofile="51200 51200"
|
||||||
|
procd_set_param respawn 0 10 0
|
||||||
|
procd_set_param stderr 1
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
_initialize_shadowsocks_tracker() {
|
_initialize_shadowsocks_tracker() {
|
||||||
local redir_tcp server tracker_server
|
local redir_tcp server tracker_server
|
||||||
config_get redir_tcp ss_rules redir_tcp
|
config_get redir_tcp ss_rules redir_tcp
|
||||||
|
@ -199,6 +221,11 @@ _multi_server() {
|
||||||
[ "$backup" = "1" ] && multiserver=true
|
[ "$backup" = "1" ] && multiserver=true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_gre_tunnel() {
|
||||||
|
config_get proto $1 proto
|
||||||
|
[ "$proto" = "gre" ] && gretunnel=true
|
||||||
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
local ss_disabled
|
local ss_disabled
|
||||||
logger -t "omr-tracker" "Launching..."
|
logger -t "omr-tracker" "Launching..."
|
||||||
|
@ -224,6 +251,10 @@ start_service() {
|
||||||
config_load openmptcprouter
|
config_load openmptcprouter
|
||||||
config_foreach _multi_server server
|
config_foreach _multi_server server
|
||||||
[ "$multiserver" = true ] && _launch_server_tracker
|
[ "$multiserver" = true ] && _launch_server_tracker
|
||||||
|
gretunnel=false
|
||||||
|
config_load network
|
||||||
|
config_foreach _gre_tunnel interface
|
||||||
|
[ "$gretunnel" = true ] && _launch_gre_tracker
|
||||||
logger -t "omr-tracker" "Launched"
|
logger -t "omr-tracker" "Launched"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue