--- network-bridge.orig 2005-12-11 20:23:16.000000000 +0800+++ network-bridge 2005-12-11 20:34:47.000000000 +0800@@ -272,10 +272,10 @@ ip addr flush ${pdev} ip link set ${netdev} addr ${mac} arp on add_to_bridge ${bridge} ${vif0}- add_to_bridge ${bridge} ${pdev} ip link set ${bridge} up ip link set ${vif0} up ip link set ${pdev} up+ add_to_bridge2 ${bridge} ${pdev} do_ifup ${netdev} else # old style without ${vdev}@@ -323,6 +323,27 @@ brctl delbr ${bridge} }+# adds $dev to $bridge but waits for $dev to be in running state first+add_to_bridge2() {+ local bridge=$1+ local dev=$2+ local maxtries=10++ echo -n "Waiting for ${dev} to negotiate link."+ for i in `seq ${maxtries}` ; do+ if ifconfig ${dev} | grep -q RUNNING ; then+ break+ else+ echo -n '.'+ sleep 1+ fi+ done++ if [ ${i} -eq ${maxtries} ] ; then echo '(link isnt in running state)' ; fi++ add_to_bridge ${bridge} ${dev}+}+ case "$command" in start) op_start