X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Fetc%2Fhotplug.d%2Fnet%2F10-net;h=06e5244447ec669f2194dc6c59e9a22b2859ed4c;hb=bcab48e4d5d4e5fc3225a0a72261be69521f209a;hp=9b72338ce88ea51b34629667ace3b95f701d22c1;hpb=05adaa9794e41d02870a74a1ed7ba58cc59b9286;p=openwrt-10.03%2F.git 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 9b72338ce..06e524444 100644 --- a/package/base-files/files/etc/hotplug.d/net/10-net +++ b/package/base-files/files/etc/hotplug.d/net/10-net @@ -3,6 +3,11 @@ include /lib/network addif() { + # PPP devices are configured by pppd, no need to run setup_interface here + case "$INTERFACE" in + ppp*) return 0;; + esac + scan_interfaces local cfg="$(find_config "$INTERFACE")" @@ -25,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 @@ -32,4 +55,7 @@ case "$ACTION" in esac addif ;; + remove|unregister) + delif + ;; esac