diff --git a/net/mwan3/Makefile b/net/mwan3/Makefile index 4e5c6e48d..878c4b993 100644 --- a/net/mwan3/Makefile +++ b/net/mwan3/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mwan3 -PKG_VERSION:=2.11.2 +PKG_VERSION:=2.11.3 PKG_RELEASE:=3 PKG_MAINTAINER:=Florian Eckert , \ Aaron Goodman diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index f48a145cb..1bfb767e8 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -483,7 +483,7 @@ mwan3_create_iface_route() # if 'connected' was called after 'ifup' [ -n "$tbl" ] && [ -z "${tbl##*$route_line$'\n'*}" ] && continue $IP route add table $id $route_line || - LOG warn "failed to add $route_line to table $id" + LOG debug "Route '$route_line' already added to table $id" fi done diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index 2c535d59f..89654f86b 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -105,14 +105,22 @@ validate_wrap() { } disconnected() { + local status="$(cat ${MWAN3TRACK_STATUS_DIR}/${INTERFACE}/STATUS)" + STATUS='offline' echo "offline" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/STATUS get_uptime > $MWAN3TRACK_STATUS_DIR/$INTERFACE/OFFLINE echo "0" > $MWAN3TRACK_STATUS_DIR/$INTERFACE/ONLINE score=0 [ "$1" = 1 ] && return - LOG notice "Interface $INTERFACE ($DEVICE) is offline" - env -i ACTION="disconnected" INTERFACE="$INTERFACE" DEVICE="$DEVICE" /sbin/hotplug-call iface + + # Only execute disconnectd action if status was online or disconnecting + if [ "$status" = "online" ] || [ "$status" = "disconnecting" ]; then + LOG notice "Interface $INTERFACE ($DEVICE) is offline" + env -i ACTION="disconnected" INTERFACE="$INTERFACE" DEVICE="$DEVICE" /sbin/hotplug-call iface + else + LOG notice "Skip disconnected event for $INTERFACE ($DEVICE)" + fi } connected() { @@ -391,8 +399,8 @@ main() { if [ "${IFDOWN_EVENT}" -eq 1 ]; then LOG debug "Register ifdown event on interface ${INTERFACE} (${DEVICE})" - disabled disconnected + disabled IFDOWN_EVENT=0 fi if [ "${IFUP_EVENT}" -eq 1 ]; then