aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-07-30 22:39:56 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-07-30 22:39:56 +0000
commitbc658556201283b4226f43de47df6e5b7e6a5870 (patch)
treeecd117b619ec51b8e86001c098386af642ddb98e /package/base-files
parent2443a74ce18ff941101f2b6b51e7c60ac77f6f06 (diff)
downloadmaster-187ad058-bc658556201283b4226f43de47df6e5b7e6a5870.tar.gz
master-187ad058-bc658556201283b4226f43de47df6e5b7e6a5870.tar.bz2
master-187ad058-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/base-files')
-rw-r--r--package/base-files/files/etc/hotplug.d/net/10-net21
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