Merge pull request #22158 from TDT-AG/pr/20230920-mwan3
mwan3: update ubus and status view
This commit is contained in:
commit
f9403708f3
4 changed files with 28 additions and 31 deletions
|
@ -8,7 +8,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mwan3
|
||||
PKG_VERSION:=2.11.8
|
||||
PKG_VERSION:=2.11.12
|
||||
PKG_RELEASE:=1
|
||||
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>, \
|
||||
Aaron Goodman <aaronjg@alumni.stanford.edu>
|
||||
|
|
|
@ -107,7 +107,7 @@ mwan3_get_mwan3track_status()
|
|||
tracking="down"
|
||||
fi
|
||||
else
|
||||
tracking="not enabled"
|
||||
tracking="disabled"
|
||||
fi
|
||||
echo "$tracking"
|
||||
}
|
||||
|
|
|
@ -1082,7 +1082,8 @@ mwan3_get_iface_hotplug_state() {
|
|||
|
||||
mwan3_report_iface_status()
|
||||
{
|
||||
local device result tracking IP IPT error
|
||||
local device result tracking IP IPT
|
||||
local status online uptime result
|
||||
|
||||
mwan3_get_iface_id id "$1"
|
||||
network_get_device device "$1"
|
||||
|
@ -1099,40 +1100,39 @@ mwan3_report_iface_status()
|
|||
IPT="$IPT6"
|
||||
fi
|
||||
|
||||
if [ -z "$id" ] || [ -z "$device" ]; then
|
||||
result="offline"
|
||||
if [ -f "$MWAN3TRACK_STATUS_DIR/${1}/STATUS" ]; then
|
||||
status="$(cat "$MWAN3TRACK_STATUS_DIR/${1}/STATUS")"
|
||||
else
|
||||
error=0
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+1000)):'"')" ] ||
|
||||
error=$((error+1))
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+2000)):'"')" ] ||
|
||||
error=$((error+2))
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+3000)):'"')" ] ||
|
||||
error=$((error+4))
|
||||
[ -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" ] ||
|
||||
error=$((error+8))
|
||||
[ -n "$($IP route list table $id default dev $device 2> /dev/null)" ] ||
|
||||
error=$((error+16))
|
||||
status="unknown"
|
||||
fi
|
||||
|
||||
if [ "$result" = "offline" ]; then
|
||||
:
|
||||
elif [ $error -eq 0 ]; then
|
||||
if [ "$status" = "online" ]; then
|
||||
online=$(get_online_time "$1")
|
||||
network_get_uptime uptime "$1"
|
||||
online="$(printf '%02dh:%02dm:%02ds\n' $((online/3600)) $((online%3600/60)) $((online%60)))"
|
||||
uptime="$(printf '%02dh:%02dm:%02ds\n' $((uptime/3600)) $((uptime%3600/60)) $((uptime%60)))"
|
||||
result="$(mwan3_get_iface_hotplug_state $1) $online, uptime $uptime"
|
||||
elif [ $error -gt 0 ] && [ $error -ne 31 ]; then
|
||||
result="error (${error})"
|
||||
elif [ "$enabled" = "1" ]; then
|
||||
result="offline"
|
||||
else
|
||||
result="disabled"
|
||||
result=0
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+1000)):'"')" ] ||
|
||||
result=$((result+1))
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+2000)):'"')" ] ||
|
||||
result=$((result+2))
|
||||
[ -n "$($IP rule | awk '$1 == "'$((id+3000)):'"')" ] ||
|
||||
result=$((result+4))
|
||||
[ -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" ] ||
|
||||
result=$((result+8))
|
||||
[ -n "$($IP route list table $id default dev $device 2> /dev/null)" ] ||
|
||||
result=$((result+16))
|
||||
[ "$result" = "0" ] && result=""
|
||||
fi
|
||||
|
||||
tracking="$(mwan3_get_mwan3track_status $1)"
|
||||
echo " interface $1 is $result and tracking is $tracking"
|
||||
if [ -n "$result" ]; then
|
||||
echo " interface $1 is $status and tracking is $tracking ($result)"
|
||||
else
|
||||
echo " interface $1 is $status and tracking is $tracking"
|
||||
fi
|
||||
}
|
||||
|
||||
mwan3_report_policies()
|
||||
|
|
|
@ -106,14 +106,10 @@ get_mwan3_status() {
|
|||
|
||||
config_get enabled "$iface" enabled 0
|
||||
|
||||
if [ -d "${MWAN3_STATUS_DIR}" ]; then
|
||||
if [ -f "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS" ]; then
|
||||
network_get_uptime uptime "$iface"
|
||||
network_is_up "$iface" && up="1"
|
||||
if [ -f "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS" ]; then
|
||||
status="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS")"
|
||||
else
|
||||
status="notracking"
|
||||
fi
|
||||
else
|
||||
uptime=0
|
||||
up=0
|
||||
|
@ -131,6 +127,7 @@ get_mwan3_status() {
|
|||
json_add_string "status" "${status}"
|
||||
json_add_boolean "enabled" "${enabled}"
|
||||
json_add_boolean "running" "${running}"
|
||||
json_add_string "tracking" "${track_status}"
|
||||
json_add_boolean "up" "${up}"
|
||||
json_add_array "track_ip"
|
||||
for file in $MWAN3TRACK_STATUS_DIR/${iface}/TRACK_*; do
|
||||
|
|
Loading…
Reference in a new issue