#!/bin/sh /etc/rc.common

. /lib/network/config.sh

EXTRA_COMMANDS="mwan_apply mwan_unload"

mwan_ifup()
{
	local DEVICE
	local ENABLED
	
	config_get ENABLED "$1" enabled 0
	DEVICE=$(uci get -p /var/state network.$1.ifname) &> /dev/null
	
	if [ -n "$DEVICE" ] ; then
		[ "$ENABLED" = "1" ] && [ "$(ip -4 route list table main dev $DEVICE default)" ] && ACTION=ifup INTERFACE=$1 DEVICE=$DEVICE /sbin/hotplug-call iface
	fi
}

mwan_unload()
{
	local rule
	local table

	killall mwan3track &> /dev/null
	rm /var/run/mwan3track-* &> /dev/null

	for rule in $(ip -4 rule list | egrep '^10[0-9]{2}\:' | cut -d ':' -f 1); do
		ip -4 rule del pref $rule &> /dev/null
		ip -4 route flush table $rule &> /dev/null
	done

	iptables -D PREROUTING -t mangle -j mwan3_pre &> /dev/null
	iptables -D INPUT -t mangle -j mwan3_post &> /dev/null
	iptables -D OUTPUT -t mangle -j mwan3_pre &> /dev/null
	iptables -D POSTROUTING -t mangle -j mwan3_post &> /dev/null

	for table in $(iptables -S -t mangle | awk '{print $2}' | grep mwan3 | sort -u); do
		iptables -F $table -t mangle &> /dev/null
	done

	for table in $(iptables -S -t mangle | awk '{print $2}' | grep mwan3 | sort -u); do
		iptables -X $table -t mangle &> /dev/null
	done

}

mwan_apply()
{
	config_load mwan3
	config_foreach mwan_ifup interface

}
