diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index 89654f86ba..c1a455b2e8 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -351,34 +351,32 @@ main() { if [ $score -lt $up ]; then score=0 [ ${keep_failure_interval} -eq 1 ] && sleep_time=$failure_interval - else + elif [ $score -eq $up ]; then + disconnecting + sleep_time=$failure_interval + disconnected + elif [ $score -gt $up ]; then disconnecting sleep_time=$failure_interval fi - - if [ $score -eq $up ]; then - disconnected - score=0 - fi else if [ $score -lt $((down+up)) ] && [ $lost -gt 0 ]; then - connecting LOG info "Lost $((lost*count)) ping(s) on interface $INTERFACE ($DEVICE). Current score: $score" fi let score++ lost=0 - if [ $score -gt $up ]; then - echo "online" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS - score=$((down+up)) - elif [ $score -le $up ]; then + if [ $score -lt $up ]; then + connecting + sleep_time=$recovery_interval + elif [ $score -eq $up ]; then connecting sleep_time=$recovery_interval - fi - - if [ $score -eq $up ]; then connected + elif [ $score -gt $up ]; then + echo "online" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS + score=$((down+up)) fi fi