[package] base-files: remove IPv6 LL addr from interfaces before adding them to a...
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 2 Jun 2010 17:18:38 +0000 (17:18 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 2 Jun 2010 17:18:38 +0000 (17:18 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21659 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/lib/network/config.sh

index 2ca04fa..1736f8e 100755 (executable)
@@ -164,6 +164,15 @@ prepare_interface() {
                        local macaddr
                        config_get macaddr "$config" macaddr
                        [ -x /usr/sbin/brctl ] && {
+                               # Remove IPv6 link local addr before adding the iface to the bridge
+                               local llv6="$(ifconfig "$iface")"
+                               case "$llv6" in
+                                       *fe80:*/64*)
+                                               llv6="${llv6#* fe80:}"
+                                               ifconfig "$iface" del "fe80:${llv6%% *}"
+                                       ;;
+                               esac
+
                                ifconfig "br-$config" 2>/dev/null >/dev/null && {
                                        local newdevs devices
                                        config_get devices "$config" device