diff options
author | Felix Fietkau <nbd@openwrt.org> | 2008-07-30 22:39:56 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2008-07-30 22:39:56 +0000 |
commit | bc658556201283b4226f43de47df6e5b7e6a5870 (patch) | |
tree | ecd117b619ec51b8e86001c098386af642ddb98e /package | |
parent | 2443a74ce18ff941101f2b6b51e7c60ac77f6f06 (diff) | |
download | upstream-bc658556201283b4226f43de47df6e5b7e6a5870.tar.gz upstream-bc658556201283b4226f43de47df6e5b7e6a5870.tar.bz2 upstream-bc658556201283b4226f43de47df6e5b7e6a5870.zip |
network scripts: properly maintain the network state's list of assigned interfaces
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12026 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r-- | package/base-files/files/etc/hotplug.d/net/10-net | 21 |
1 files changed, 21 insertions, 0 deletions
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 77eb6da9d4..06e5244447 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 |