mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
Fix and more info on omr-tracker
This commit is contained in:
parent
cebb8eb9d7
commit
0c41334fc0
2 changed files with 60 additions and 39 deletions
|
@ -115,7 +115,11 @@ default_gw=$(ip route show default | grep -v metric | awk '/default/ {print $3}'
|
||||||
if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
||||||
if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then
|
if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then
|
||||||
[ "$multipath_status" = "off" ] || {
|
[ "$multipath_status" = "off" ] || {
|
||||||
_log "$OMR_TRACKER_DEVICE switched off because $OMR_TRACKER_STATUS_MSG"
|
if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then
|
||||||
|
_log "$OMR_TRACKER_DEVICE switched off"
|
||||||
|
else
|
||||||
|
_log "$OMR_TRACKER_DEVICE switched off because $OMR_TRACKER_STATUS_MSG"
|
||||||
|
fi
|
||||||
if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then
|
if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then
|
||||||
multipath "$OMR_TRACKER_DEVICE" off
|
multipath "$OMR_TRACKER_DEVICE" off
|
||||||
fi
|
fi
|
||||||
|
@ -136,7 +140,11 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
||||||
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
||||||
fi
|
fi
|
||||||
if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then
|
if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then
|
||||||
_log "$OMR_TRACKER_INTERFACE down because $OMR_TRACKER_STATUS_MSG"
|
if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then
|
||||||
|
_log "$OMR_TRACKER_INTERFACE down"
|
||||||
|
else
|
||||||
|
_log "$OMR_TRACKER_INTERFACE down because $OMR_TRACKER_STATUS_MSG"
|
||||||
|
fi
|
||||||
config_load network
|
config_load network
|
||||||
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
||||||
#config_load shadowsocks-libev
|
#config_load shadowsocks-libev
|
||||||
|
|
|
@ -141,6 +141,7 @@ while true; do
|
||||||
OMR_TRACKER_STATUS_MSG=""
|
OMR_TRACKER_STATUS_MSG=""
|
||||||
OMR_TRACKER_LATENCY=
|
OMR_TRACKER_LATENCY=
|
||||||
OMR_TRACKER_TIMEOUT=$((rto / 1000 + (rto % 1000 ? 1 : 0)))
|
OMR_TRACKER_TIMEOUT=$((rto / 1000 + (rto % 1000 ? 1 : 0)))
|
||||||
|
OMT_TRACKER_LIST_HOSTS=""
|
||||||
|
|
||||||
if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then
|
if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then
|
||||||
# retrieve iface ip and gateway
|
# retrieve iface ip and gateway
|
||||||
|
@ -164,49 +165,61 @@ while true; do
|
||||||
|
|
||||||
# execute specific tracker
|
# execute specific tracker
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
_ping "$OMR_TRACKER_DEVICE_GATEWAY" "$OMR_TRACKER_DEVICE_IP" "no"
|
# setup loop variable
|
||||||
status=$?
|
tries="$OMR_TRACKER_TRIES"
|
||||||
if $(exit $status); then
|
# loop until tries attempts have been reached
|
||||||
if [ "$OMR_TRACKER_TYPE" = "none" ]; then
|
while [ "$tries" -gt 0 ]; do
|
||||||
|
_ping "$OMR_TRACKER_DEVICE_GATEWAY" "$OMR_TRACKER_DEVICE_IP" "no"
|
||||||
|
status=$?
|
||||||
|
if $(exit $status) && [ "$OMR_TRACKER_TYPE" = "none" ]; then
|
||||||
|
OMR_TRACKER_STATUS_MSG=""
|
||||||
OMR_TRACKER_STATUS="OK"
|
OMR_TRACKER_STATUS="OK"
|
||||||
|
break
|
||||||
else
|
else
|
||||||
# setup loop variable
|
if $(exit $status); then
|
||||||
tries="$OMR_TRACKER_TRIES"
|
OMR_TRACKER_STATUS_MSG="gateway down"
|
||||||
# loop until tries attempts have been reached
|
fi
|
||||||
while [ "$tries" -gt 0 ]; do
|
# Check if route is not used
|
||||||
# Check if route is not used
|
while ! ip route add $OMR_TRACKER_HOST via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE src $OMR_TRACKER_DEVICE_IP > /dev/null 2&>1
|
||||||
while ! ip route add $OMR_TRACKER_HOST via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE src $OMR_TRACKER_DEVICE_IP > /dev/null 2&>1
|
do
|
||||||
do
|
|
||||||
sleep 1
|
|
||||||
_restart
|
|
||||||
done
|
|
||||||
if [ "$OMR_TRACKER_TYPE" = "ping" ]; then
|
|
||||||
_ping "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
|
||||||
status=$?
|
|
||||||
elif [ "$OMR_TRACKER_TYPE" = "httping" ]; then
|
|
||||||
_httping "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
|
||||||
status=$?
|
|
||||||
elif [ "$OMR_TRACKER_TYPE" = "dns" ]; then
|
|
||||||
_dns "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
|
||||||
status=$?
|
|
||||||
fi
|
|
||||||
ip route del "$OMR_TRACKER_HOST" via "$OMR_TRACKER_DEVICE_GATEWAY" dev "$OMR_TRACKER_DEVICE" src "$OMR_TRACKER_DEVICE_IP" > /dev/null 2&>1
|
|
||||||
if $(exit $status); then
|
|
||||||
OMR_TRACKER_STATUS_MSG=""
|
|
||||||
OMR_TRACKER_STATUS="OK"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_TYPE to $OMR_TRACKER_HOST from $OMR_TRACKER_DEVICE_IP error"
|
|
||||||
fi
|
|
||||||
tries=$((tries - 1))
|
|
||||||
OMR_TRACKER_TIMEOUT=$((OMR_TRACKER_TIMEOUT * 2))
|
|
||||||
sleep 1
|
sleep 1
|
||||||
_restart
|
_restart
|
||||||
done
|
done
|
||||||
|
if [ "$OMR_TRACKER_TYPE" = "ping" ]; then
|
||||||
|
_ping "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
||||||
|
statusb=$?
|
||||||
|
elif [ "$OMR_TRACKER_TYPE" = "httping" ]; then
|
||||||
|
_httping "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
||||||
|
statusb=$?
|
||||||
|
elif [ "$OMR_TRACKER_TYPE" = "dns" ]; then
|
||||||
|
_dns "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
|
||||||
|
statusb=$?
|
||||||
|
fi
|
||||||
|
ip route del "$OMR_TRACKER_HOST" via "$OMR_TRACKER_DEVICE_GATEWAY" dev "$OMR_TRACKER_DEVICE" src "$OMR_TRACKER_DEVICE_IP" > /dev/null 2&>1
|
||||||
|
if $(exit $statusb); then
|
||||||
|
OMR_TRACKER_STATUS_MSG=""
|
||||||
|
OMR_TRACKER_STATUS="OK"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [ "$OMR_TRACKER_LIST_HOSTS" = "" ]; then
|
||||||
|
OMR_TRACKER_LIST_HOSTS="$OMR_TRACKER_HOST"
|
||||||
|
else
|
||||||
|
OMR_TRACKER_LIST_HOSTS="$OMR_TRACKER_LIST_HOSTS,$OMR_TRACKER_HOST"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
tries=$((tries - 1))
|
||||||
OMR_TRACKER_STATUS_MSG="gateway down"
|
#OMR_TRACKER_TIMEOUT=$((OMR_TRACKER_TIMEOUT * 2))
|
||||||
fi
|
_restart
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$OMR_TRACKER_LIST_HOSTS" != "" ]; then
|
||||||
|
if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then
|
||||||
|
OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_TYPE from $OMR_TRACKER_DEVICE_IP error ($OMR_TRACKER_LIST_HOSTS)"
|
||||||
|
else
|
||||||
|
OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG and $OMR_TRACKER_TYPE from $OMR_TRACKER_DEVICE_IP error ($OMR_TRACKER_LIST_HOSTS)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue