#!/bin/sh

. /lib/functions.sh
. /lib/mwan3/mwan3.sh

LOG="logger -t $(basename "$0")[$$] -p"

clean_up() {
	$LOG notice "Stopping mwan3rtmon..."
	exit 0
}

rtchange() {
	$LOG info "Detect rtchange event."
}

main() {
	local rtmon_interval
	trap clean_up TERM
	trap rtchange USR1

	config_load mwan3
	config_get rtmon_interval globals rtmon_interval '5'

	sleep 3
	while true; do
		mwan3_lock "service" "mwan3rtmon"
		mwan3_rtmon_ipv4 || mwan3_rtmon_ipv6
		ret=$?
		mwan3_unlock "service" "mwan3rtmon"
		[ "$ret" = "0" ] || break
		[ "$rtmon_interval" = "0" ] && break
		sleep "$rtmon_interval" &
		wait
	done
}

main "$@"