diff options
Diffstat (limited to 'package')
| -rw-r--r-- | package/base-files/default/etc/hotplug.d/net/10-net | 5 | ||||
| -rwxr-xr-x | package/base-files/default/lib/network/config.sh | 13 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/ifup | 5 | 
3 files changed, 17 insertions, 6 deletions
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"  | 
