diff options
| -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 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 | 
