properly keep track of bridged interfaces in the network state

SVN-Revision: 12004
This commit is contained in:
Felix Fietkau 2008-07-30 05:22:02 +00:00
parent df292e17b1
commit e606b1603b

View file

@ -64,6 +64,16 @@ add_vlan() {
} }
} }
# sort the device list, drop duplicates
sort_list() {
local arg="$*"
(
for item in $arg; do
echo "$item"
done
) | sort -u
}
# Create the interface, if necessary. # Create the interface, if necessary.
# Return status 0 indicates that the setup_interface() call should continue # Return status 0 indicates that the setup_interface() call should continue
# Return status 1 means that everything is set up already. # Return status 1 means that everything is set up already.
@ -94,6 +104,13 @@ prepare_interface() {
bridge) bridge)
[ -x /usr/sbin/brctl ] && { [ -x /usr/sbin/brctl ] && {
ifconfig "br-$config" 2>/dev/null >/dev/null && { ifconfig "br-$config" 2>/dev/null >/dev/null && {
local newdevs=
config_get devices "$config" device
for dev in $(sort_list "$devices" "$iface"); do
append newdevs "$dev"
done
uci_set_state network "$config" device "$newdevs"
$DEBUG brctl addif "br-$config" "$iface" $DEBUG brctl addif "br-$config" "$iface"
# Bridge existed already. No further processing necesary # Bridge existed already. No further processing necesary
} || { } || {