mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
mwan3: fix race condition on mwan3 restart
This adjustment of the locks fixes the race condition when a mwan3
hotplug script and a mwan3 command are running at the same time.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 2dac1bcdc9)
This commit is contained in:
@@ -12,19 +12,24 @@ if [ "$ACTION" == "ifup" ]; then
|
||||
[ -n "$DEVICE" ] || exit 3
|
||||
fi
|
||||
|
||||
mwan3_lock "$ACTION" "$INTERFACE"
|
||||
config_load mwan3
|
||||
config_get_bool enabled globals 'enabled' '0'
|
||||
[ ${enabled} -gt 0 ] || exit 0
|
||||
[ ${enabled} -gt 0 ] || {
|
||||
mwan3_unlock "$ACTION" "$INTERFACE"
|
||||
exit 0
|
||||
}
|
||||
|
||||
mwan3_lock "$ACTION" "$INTERFACE"
|
||||
mwan3_init
|
||||
mwan3_set_connected_iptables
|
||||
mwan3_set_custom_ipset
|
||||
mwan3_unlock "$ACTION" "$INTERFACE"
|
||||
|
||||
config_get enabled $INTERFACE enabled 0
|
||||
config_get initial_state $INTERFACE initial_state "online"
|
||||
[ "$enabled" == "1" ] || exit 0
|
||||
[ "${enabled}" == "1" ] || {
|
||||
mwan3_unlock "$ACTION" "$INTERFACE"
|
||||
exit 0
|
||||
}
|
||||
|
||||
if [ "$ACTION" == "ifup" ]; then
|
||||
config_get family $INTERFACE family ipv4
|
||||
@@ -58,7 +63,6 @@ else
|
||||
running=1
|
||||
fi
|
||||
|
||||
mwan3_lock "$ACTION" "$INTERFACE"
|
||||
$LOG notice "Execute "$ACTION" event on interface $INTERFACE (${DEVICE:-unknown})"
|
||||
|
||||
case "$ACTION" in
|
||||
|
||||
@@ -4,14 +4,17 @@
|
||||
. /lib/functions/network.sh
|
||||
. /lib/mwan3/mwan3.sh
|
||||
|
||||
mwan3_lock "$ACTION" "mwan3rtmon"
|
||||
|
||||
config_load mwan3
|
||||
config_get_bool enabled globals 'enabled' '0'
|
||||
[ ${enabled} -gt 0 ] || exit 0
|
||||
[ ${enabled} -gt 0 ] || {
|
||||
mwan3_unlock "$ACTION" "mwan3rtmon"
|
||||
exit 0
|
||||
}
|
||||
|
||||
if [ "$ACTION" == "ifup" ]; then
|
||||
mwan3_lock "$ACTION" "mwan3rtmon"
|
||||
mwan3_rtmon
|
||||
mwan3_unlock "$ACTION" "mwan3rtmon"
|
||||
fi
|
||||
|
||||
config_get enabled $INTERFACE enabled 0
|
||||
@@ -19,4 +22,6 @@ config_get enabled $INTERFACE enabled 0
|
||||
mwan3_flush_conntrack "$INTERFACE" "$ACTION"
|
||||
}
|
||||
|
||||
mwan3_unlock "$ACTION" "mwan3rtmon"
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -2,13 +2,25 @@
|
||||
|
||||
[ -f "/etc/mwan3.user" ] && {
|
||||
. /lib/functions.sh
|
||||
. /lib/mwan3/mwan3.sh
|
||||
|
||||
mwan3_lock "$ACTION" "user"
|
||||
|
||||
config_load mwan3
|
||||
config_get_bool enabled globals 'enabled' '0'
|
||||
[ ${enabled} -gt 0 ] || exit 0
|
||||
[ ${enabled} -gt 0 ] || {
|
||||
mwan3_unlock "$ACTION" "user"
|
||||
exit 0
|
||||
}
|
||||
|
||||
config_get enabled "$INTERFACE" enabled 0
|
||||
[ "${enabled}" = "1" ] || exit 0
|
||||
[ "${enabled}" = "1" ] || {
|
||||
mwan3_unlock "$ACTION" "user"
|
||||
exit 0
|
||||
}
|
||||
|
||||
mwan3_unlock "$ACTION" "user"
|
||||
|
||||
env -i ACTION="$ACTION" INTERFACE="$INTERFACE" DEVICE="$DEVICE" \
|
||||
/bin/sh /etc/mwan3.user
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user