#!/bin/sh
. /etc/functions.sh
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
ipdown=$(cat /proc/uptime | awk 'FS="[.]+" {print $1}')
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
[ -z "$PPP_IPPARAM" ] || {
	env -i ACTION="ifdown" INTERFACE="$PPP_IPPARAM" DEVICE="$PPP_IFACE" PROTO=ppp /sbin/hotplug-call "iface"

	if [ "$PPP_IPPARAM" == "wan" ]; then
		# remove the interface's network state (only when it was not removed in ifdown)
		uptime=$(uci -q -P /var/state get network.wan.uptime | awk 'FS="[.]+" {print $1}')
		if [ -n "$uptime" -a $ipdown -ge $uptime ]; then
			logger "revert uci network state in ip-down..."
			uci_revert_state network "$PPP_IPPARAM"
		fi
	else
		# remove the interface's network state
		uci_revert_state network "$PPP_IPPARAM"
	fi
}

[ -d /etc/ppp/ip-down.d ] && {
	for SCRIPT in /etc/ppp/ip-down.d/*
	do
		[ -x "$SCRIPT" ] && "$SCRIPT" $@
	done
}
