#!/bin.sh

. /lib/functions.sh

[ -n "$DEVICE" ] || exit 0

list_ports() {
    local section
    local find_name
    local devname
    section="$1"
    find_name="$2"
    devname=$(config_get "$section" "name")
    [ "$devname" = "$find_name" ] || return
    config_get "$section" "ports"
}

ports_for_device() {
    local devname
    devname=$1
    [ -z "$devname" ] && return
    config_load network
    config_foreach list_ports device "$devname"
}

ALL_DEVICES=$(echo $DEVICE $(uci -q get network.$INTERFACE.ifname) $(ports_for_device $(uci -q get network.$INTERFACE.device)) | tr ' ' '\n' | sort -u)

restart_sqm() {
    for dev in $ALL_DEVICES; do
        /usr/lib/sqm/run.sh stop $dev
        /usr/lib/sqm/run.sh start $dev
    done
}

[ "$ACTION" = ifup ] && /etc/init.d/sqm enabled && restart_sqm

if [ "$ACTION" = ifdown ]; then
    for dev in $ALL_DEVICES; do
        /usr/lib/sqm/run.sh stop $dev
    done
fi
