X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/5f9c2e9fa6bb077f115b2c3e1d5db6b79dbfc625..57a1576550e4cd18adf7ab7d63abe31ef4b364b0:/package/base-files/files/etc/hotplug.d/net/10-net diff --git a/package/base-files/files/etc/hotplug.d/net/10-net b/package/base-files/files/etc/hotplug.d/net/10-net index 77eb6da9d..06e524444 100644 --- a/package/base-files/files/etc/hotplug.d/net/10-net +++ b/package/base-files/files/etc/hotplug.d/net/10-net @@ -30,6 +30,24 @@ addif() { done } + +delif() { + scan_interfaces + + # find all vlan configurations for this interface and nuke 'em + for ifc in $interfaces; do + config_get iftype "$ifc" type + config_get ifs "$ifc" device + confdevs="$(uci get network.$ifc.ifname)" + for dev in $ifs; do + [ "${dev%%\.*}" = "$INTERFACE" ] && { + list_contains confdevs "$dev" || list_remove ifs "$dev" + } + done + uci_set_state "network" "$ifc" device "$ifs" + done +} + case "$ACTION" in add|register) case "$PHYSDEVDRIVER" in @@ -37,4 +55,7 @@ case "$ACTION" in esac addif ;; + remove|unregister) + delif + ;; esac