projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
df292e1
)
properly keep track of bridged interfaces in the network state
author
Felix Fietkau
<nbd@openwrt.org>
Wed, 30 Jul 2008 05:22:02 +0000
(
05:22
+0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Wed, 30 Jul 2008 05:22:02 +0000
(
05:22
+0000)
SVN-Revision: 12004
package/base-files/files/lib/network/config.sh
patch
|
blob
|
history
diff --git
a/package/base-files/files/lib/network/config.sh
b/package/base-files/files/lib/network/config.sh
index 7fa1d37e497aca83b9a4173c2b13063c1a6b2c49..3d58c63f78ec057434aaffd0463757ba36c9c526 100755
(executable)
--- a/
package/base-files/files/lib/network/config.sh
+++ b/
package/base-files/files/lib/network/config.sh
@@
-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.
# Return status 0 indicates that the setup_interface() call should continue
# Return status 1 means that everything is set up already.
# Create the interface, if necessary.
# Return status 0 indicates that the setup_interface() call should continue
# Return status 1 means that everything is set up already.
@@
-94,6
+104,13
@@
prepare_interface() {
bridge)
[ -x /usr/sbin/brctl ] && {
ifconfig "br-$config" 2>/dev/null >/dev/null && {
bridge)
[ -x /usr/sbin/brctl ] && {
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"
# Bridge existed already. No further processing necesary
} || {
$DEBUG brctl addif "br-$config" "$iface"
# Bridge existed already. No further processing necesary
} || {