Merge pull request #12948 from TDT-AG/pr/20200724-mwan3
mwan3: update to version 2.8.12
This commit is contained in:
commit
00cb41275c
6 changed files with 57 additions and 38 deletions
|
@ -8,7 +8,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mwan3
|
||||
PKG_VERSION:=2.8.11
|
||||
PKG_VERSION:=2.8.12
|
||||
PKG_RELEASE:=1
|
||||
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
|
|
@ -9,24 +9,29 @@
|
|||
[ -n "$INTERFACE" ] || exit 2
|
||||
|
||||
if [ "$ACTION" == "ifup" ]; then
|
||||
[ -n "$DEVICE" ] || exit 3
|
||||
[ -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
|
||||
config_get_bool enabled $INTERFACE 'enabled' '0'
|
||||
[ "${enabled}" -eq 1 ] || {
|
||||
mwan3_unlock "$ACTION" "$INTERFACE"
|
||||
exit 0
|
||||
}
|
||||
|
||||
if [ "$ACTION" == "ifup" ]; then
|
||||
if [ "$ACTION" = "ifup" ]; then
|
||||
config_get family $INTERFACE family ipv4
|
||||
if [ "$family" = "ipv4" ]; then
|
||||
ubus call network.interface.${INTERFACE}_4 status &>/dev/null
|
||||
|
@ -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
|
||||
|
@ -68,7 +72,7 @@ case "$ACTION" in
|
|||
mwan3_create_iface_iptables $INTERFACE $DEVICE
|
||||
mwan3_create_iface_rules $INTERFACE $DEVICE
|
||||
mwan3_create_iface_route $INTERFACE $DEVICE
|
||||
if [ ${running} -eq 1 -a "${status}" = "online" ]; then
|
||||
if [ "${running}" -eq 1 ] && [ "${status}" = "online" ]; then
|
||||
$LOG notice "Starting tracker on interface $INTERFACE (${DEVICE:-unknown})"
|
||||
mwan3_set_iface_hotplug_state $INTERFACE "online"
|
||||
mwan3_track $INTERFACE $DEVICE "online" "$src_ip"
|
||||
|
|
|
@ -4,19 +4,24 @@
|
|||
. /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
|
||||
|
||||
if [ "$ACTION" == "ifup" ]; then
|
||||
mwan3_lock "$ACTION" "mwan3rtmon"
|
||||
mwan3_rtmon
|
||||
[ "${enabled}" -gt 0 ] || {
|
||||
mwan3_unlock "$ACTION" "mwan3rtmon"
|
||||
exit 0
|
||||
}
|
||||
|
||||
if [ "$ACTION" = "ifup" ]; then
|
||||
mwan3_rtmon
|
||||
fi
|
||||
|
||||
config_get enabled $INTERFACE enabled 0
|
||||
[ "${enabled}" = "0" ] || {
|
||||
config_get_bool enabled "$INTERFACE" 'enabled' '0'
|
||||
[ "${enabled}" -eq 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_bool enabled "$INTERFACE" enabled 0
|
||||
[ "${enabled}" -eq 1 ] || {
|
||||
mwan3_unlock "$ACTION" "user"
|
||||
exit 0
|
||||
}
|
||||
|
||||
mwan3_unlock "$ACTION" "user"
|
||||
|
||||
config_get enabled "$INTERFACE" enabled 0
|
||||
[ "${enabled}" = "1" ] || exit 0
|
||||
env -i ACTION="$ACTION" INTERFACE="$INTERFACE" DEVICE="$DEVICE" \
|
||||
/bin/sh /etc/mwan3.user
|
||||
}
|
||||
|
|
|
@ -203,17 +203,6 @@ mwan3_unlock() {
|
|||
lock -u /var/run/mwan3.lock
|
||||
}
|
||||
|
||||
mwan3_lock_clean() {
|
||||
for pid in $(pgrep -f "lock /var/run/mwan3.lock"); do
|
||||
kill -TERM "$pid" > /dev/null 2>&1
|
||||
done
|
||||
sleep 1
|
||||
for pid in $(pgrep -f "lock /var/run/mwan3.lock"); do
|
||||
kill -KILL "$pid" > /dev/null 2>&1
|
||||
done
|
||||
rm -rf /var/run/mwan3.lock
|
||||
}
|
||||
|
||||
mwan3_get_iface_id()
|
||||
{
|
||||
local _tmp _iface _iface_count
|
||||
|
|
|
@ -45,30 +45,39 @@ ifup()
|
|||
{
|
||||
local device enabled up l3_device status
|
||||
|
||||
mwan3_lock "command" "mwan3"
|
||||
|
||||
config_load mwan3
|
||||
config_get_bool enabled globals 'enabled' 0
|
||||
|
||||
[ ${enabled} -gt 0 ] || {
|
||||
echo "The service mwan3 is global disabled."
|
||||
echo "Please execute \"/etc/init.d/mwan3 start\" first."
|
||||
mwan3_unlock "command" "mwan3"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Expecting interface. Usage: mwan3 ifup <interface>" && exit 0
|
||||
echo "Expecting interface. Usage: mwan3 ifup <interface>"
|
||||
mwan3_unlock "command" "mwan3"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -n "$2" ]; then
|
||||
echo "Too many arguments. Usage: mwan3 ifup <interface>" && exit 0
|
||||
echo "Too many arguments. Usage: mwan3 ifup <interface>"
|
||||
mwan3_unlock "command" "mwan3"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
config_get enabled "$1" enabled 0
|
||||
mwan3_unlock "command" "mwan3"
|
||||
|
||||
status=$(ubus -S call network.interface.$1 status)
|
||||
[ -n "$status" ] && {
|
||||
json_load "$status"
|
||||
json_get_vars up l3_device
|
||||
}
|
||||
|
||||
config_get enabled "$1" enabled 0
|
||||
|
||||
if [ "$up" = "1" ] \
|
||||
&& [ -n "$l3_device" ] \
|
||||
&& [ "$enabled" = "1" ]; then
|
||||
|
@ -130,7 +139,9 @@ start()
|
|||
{
|
||||
local enabled
|
||||
|
||||
mwan3_lock "command" "mwan3"
|
||||
uci_toggle_state mwan3 globals enabled "1"
|
||||
mwan3_unlock "command" "mwan3"
|
||||
|
||||
config_load mwan3
|
||||
config_foreach ifup interface
|
||||
|
@ -141,6 +152,7 @@ stop()
|
|||
local ipset route rule table IP IPT pid
|
||||
|
||||
mwan3_lock "command" "mwan3"
|
||||
uci_toggle_state mwan3 globals enabled "0"
|
||||
|
||||
for pid in $(pgrep -f "mwan3rtmon"); do
|
||||
kill -TERM "$pid" > /dev/null 2>&1
|
||||
|
@ -198,10 +210,7 @@ stop()
|
|||
|
||||
mwan3_unlock "command" "mwan3"
|
||||
|
||||
mwan3_lock_clean
|
||||
rm -rf $MWAN3_STATUS_DIR $MWAN3TRACK_STATUS_DIR
|
||||
|
||||
uci_toggle_state mwan3 globals enabled "0"
|
||||
}
|
||||
|
||||
restart() {
|
||||
|
|
Loading…
Reference in a new issue