mwan3: don't call rpcd on 'mwan3 interfaces'

Allow `mwan3 interfaces` to get uptime via an internal function and
thus remove the dependency on rpcd for `mwan3 interface` calls.

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
This commit is contained in:
Aaron Goodman
2020-11-12 19:21:04 -05:00
parent f644dadfea
commit a5f3e6bb6b
3 changed files with 40 additions and 31 deletions

View File

@@ -69,6 +69,26 @@ report_policies_v6() {
done
}
get_age() {
local time_p time_u
iface="$1"
time_p="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/TIME")"
[ -z "${time_p}" ] || {
time_n="$(get_uptime)"
echo $((time_n-time_p))
}
}
get_offline_time() {
local time_n time_d iface
iface="$1"
time_d="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/OFFLINE")"
[ -z "${time_d}" ] || [ "${time_d}" = "0" ] || {
time_n="$(get_uptime)"
echo $((time_n-time_d))
}
}
get_mwan3_status() {
local iface="${1}"
local iface_select="${2}"
@@ -85,23 +105,9 @@ get_mwan3_status() {
track_status="$(mwan3_get_mwan3track_status "$1")"
[ "$track_status" = "active" ] && running="1"
time_p="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/TIME")"
[ -z "${time_p}" ] || {
time_n="$(get_uptime)"
let age=time_n-time_p
}
time_u="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/ONLINE")"
[ -z "${time_u}" ] || [ "${time_u}" = "0" ] || {
time_n="$(get_uptime)"
let online=time_n-time_u
}
time_d="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/OFFLINE")"
[ -z "${time_d}" ] || [ "${time_d}" = "0" ] || {
time_n="$(get_uptime)"
let offline=time_n-time_d
}
age=$(get_age "$iface")
online=$(get_online_time "$iface")
offline=$(get_offline_time "$iface")
local uptime="0"