From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Thu, 24 Aug 2006 13:46:47 +0000 (+0000)
Subject: revert to using *_ifnames internally, too many problems with firewall, ppp, etc.... 
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/00394c57717f28bb3b9860020729cd73036a8cf8

revert to using *_ifnames internally, too many problems with firewall, ppp, etc. otherwise

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4653 3c298f89-4303-0410-b956-a3cf2f4a3e73
---

diff --git a/package/base-files/default/etc/hotplug.d/net/10-net b/package/base-files/default/etc/hotplug.d/net/10-net
index 8661a2851..b5140758a 100644
--- a/package/base-files/default/etc/hotplug.d/net/10-net
+++ b/package/base-files/default/etc/hotplug.d/net/10-net
@@ -9,7 +9,10 @@ addif() {
 	# find all vlan configurations for this interface and set them up as well
 	for ifc in $interfaces; do
 		config_get iftype "$ifc" type
-		config_get ifs "$ifc" ifname
+		case "$iftype" in
+			bridge) config_get ifs "$ifc" ifnames;;
+			*) config_get ifs "$ifc" ifname;;
+		esac
 		for dev in $ifs; do
 			[ "${dev%%\.*}" = "$INTERFACE" -a "$dev" != "$INTERFACE" ] && {
 				add_vlan "$dev"
diff --git a/package/base-files/default/lib/network/config.sh b/package/base-files/default/lib/network/config.sh
index d4864ae86..5bc74d128 100755
--- a/package/base-files/default/lib/network/config.sh
+++ b/package/base-files/default/lib/network/config.sh
@@ -21,7 +21,7 @@ find_config() {
 }
 
 scan_interfaces() {
-	local mode iftype iface
+	local mode iftype iface ifname device
 	interfaces=
 	config_cb() {
 		config_get iftype "$CONFIG_SECTION" TYPE
@@ -29,10 +29,15 @@ scan_interfaces() {
 			interface)
 				config_get proto "$CONFIG_SECTION" proto
 				append interfaces "$CONFIG_SECTION"
+				config_get iftype "$CONFIG_SECTION" iftype
+				case "$iftype" in
+					bridge)
+						config_get ifname "$CONFIG_SECTION" ifname
+						config_set "$CONFIG_SECTION" ifnames "$ifname"
+						config_set "$CONFIG_SECTION" ifname br-"$CONFIG_SECTION"
+					;;
+				esac
 				( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$CONFIG_SECTION'"
-				config_get ifname "$CONFIG_SECTION" ifname
-				config_get device "$CONFIG_SECTION" device
-				config_set "$CONFIG_SECTION" device "${device:-$ifname}"
 			;;
 		esac
 	}
diff --git a/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup
index 86d10d7ca..c7055d480 100755
--- a/package/base-files/default/sbin/ifup
+++ b/package/base-files/default/sbin/ifup
@@ -4,7 +4,10 @@
 . /sbin/ifdown "$@"
 
 config_get iftype "$1" type
-config_get ifname "$1" ifname
+case "$iftype" in
+	bridge) config_get ifname "$1" ifnames;;
+	*) config_get ifname "$1" ifname;;
+esac
 
 for dev in $ifname; do
 	setup_interface "$dev" "$1"