From 5348732b98818e7e3c02c84eea1beaae1e5bf580 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Tue, 2 Mar 2021 16:04:49 +0100 Subject: [PATCH] mwan3: add connecting and disconnecting event to mwan3track If the interface goes into failure state (is disconnecting) then with this change one hotplug.d event is generated. The same is true for the recovery state (is connecting), when the interface comes back from a failure state. In both cases, a hotplug.d event for the iface is triggered. Once with the $ACTION=disconnecting and once for the $ACTION=connecting. Signed-off-by: Florian Eckert --- net/mwan3/Makefile | 2 +- net/mwan3/files/usr/sbin/mwan3track | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/net/mwan3/Makefile b/net/mwan3/Makefile index c8f551df2f..6909505f7f 100644 --- a/net/mwan3/Makefile +++ b/net/mwan3/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mwan3 -PKG_VERSION:=2.10.7 +PKG_VERSION:=2.10.8 PKG_RELEASE:=1 PKG_MAINTAINER:=Florian Eckert , \ Aaron Goodman diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index fd81f68c3b..2c535d59ff 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -128,6 +128,24 @@ connected() { env -i FIRSTCONNECT=$1 ACTION="connected" INTERFACE="$INTERFACE" DEVICE="$DEVICE" /sbin/hotplug-call iface } +disconnecting() { + if [ "$STATUS" != "disconnecting" ] ; then + STATUS="disconnecting" + echo "disconnecting" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS + LOG notice "Interface $INTERFACE ($DEVICE) is disconnecting" + env -i ACTION="disconnecting" INTERFACE="$INTERFACE" DEVICE="$DEVICE" /sbin/hotplug-call iface + fi +} + +connecting() { + if [ "$STATUS" != "connecting" ] ; then + STATUS="connecting" + echo "connecting" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS + LOG notice "Interface $INTERFACE ($DEVICE) is connecting" + env -i ACTION="connecting" INTERFACE="$INTERFACE" DEVICE="$DEVICE" /sbin/hotplug-call iface + fi +} + disabled() { STATUS='disabled' echo "disabled" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS @@ -326,6 +344,7 @@ main() { score=0 [ ${keep_failure_interval} -eq 1 ] && sleep_time=$failure_interval else + disconnecting sleep_time=$failure_interval fi @@ -335,6 +354,7 @@ main() { 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 @@ -345,6 +365,7 @@ main() { echo "online" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS score=$((down+up)) elif [ $score -le $up ]; then + connecting sleep_time=$recovery_interval fi -- 2.30.2