Просмотр исходного кода

network scripts: properly maintain the network state's list of assigned interfaces

SVN-Revision: 12026
Felix Fietkau 17 лет назад
Родитель
Сommit
ee56e9ec59
1 измененных файлов с 21 добавлено и 0 удалено
  1. 21 0
      package/base-files/files/etc/hotplug.d/net/10-net

+ 21 - 0
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