1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-13 02:51:50 +00:00
openmptcprouter-feeds/omr-tracker/files/bin/omr-tracker-gre
2021-06-25 19:46:51 +02:00

50 lines
1.1 KiB
Bash
Executable file

#!/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}" 2>/dev/null
) && echo "$ret" | grep -sq " 0% packet loss" && {
server_ping=true
}
}
_ping_tunnel() {
local name=$1
config_get gateway $1 gateway
config_get ifname $1 device
[ -z "$ifname" ] && config_get ifname $1 ifname
config_get disabled $1 disabled
[ "$(echo $ifname | grep oip)" != "" ] && [ -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
if [ "$server_ping" = false ]; then
/etc/init.d/openmptcprouter-vps set_gre_tunnel 2>&1 >/dev/null
fi
sleep "${interval}"
done