--- network-bridge.orig 2008-09-21 00:33:31.003486679 +0200 +++ network-bridge 2008-09-21 00:37:02.804723429 +0200 @@ -101,7 +101,8 @@ tdev=tmpbridge get_ip_info() { - addr_pfx=`ip addr show dev $1 | egrep '^ *inet' | sed -e 's/ *inet //' -e "s/$1//"` + addr_pfx=`ip addr show dev $1 | egrep '^ *inet ' | sed -e 's/ *inet //' -e "s/$1//" -e 's/secondary //'` + addr_pfx_6=`ip addr show dev $1 | egrep '^ *inet6.*global.*' | sed -e 's/ *inet6 //' -e '/dynamic/d' -e 's/tentative //'` gateway=`ip route show dev $1 | fgrep default | sed 's/default via //'` } @@ -110,9 +111,19 @@ if [ -n "$addr_pfx" ] ; then # use the info from get_ip_info() ip addr flush $1 - ip addr add ${addr_pfx} dev $1 + # add IPs (IPv4) + echo -e -n "${addr_pfx}\n" | while read addr; do + ip addr add ${addr} dev $1 + done + ip link set dev $1 up + + # add IPs (IPv6) + echo -e -n "${addr_pfx_6}\n" | while read addr; do + ip addr add ${addr} dev $1 + done [ -n "$gateway" ] && ip route add default via ${gateway} + return 0 fi fi }