diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-30 18:23:56 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-30 18:23:56 +0000 | 
| commit | b905c102f041ea88e7a5e1b25bd089953bf345f7 (patch) | |
| tree | abc20073b1a7cb7ca114804ccbd3e506131913e4 | |
| parent | 5bae60a02473c39fb49a4e9b7e2bd0b2f581e3ce (diff) | |
base-files-network: add a fixup_interface function like with the netifd compatibility scripts - allows selective fixup of individual interface sections instead of having to do the full scan_interfaces
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31543 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rwxr-xr-x | package/base-files-network/files/lib/network/config.sh | 44 | 
1 files changed, 25 insertions, 19 deletions
| diff --git a/package/base-files-network/files/lib/network/config.sh b/package/base-files-network/files/lib/network/config.sh index 5e8b05909..8ba31a878 100755 --- a/package/base-files-network/files/lib/network/config.sh +++ b/package/base-files-network/files/lib/network/config.sh @@ -48,34 +48,40 @@ find_config() {  	return 1;  } -scan_interfaces() { -	local cfgfile="${1:-network}" -	interfaces= -	config_cb() { -		case "$1" in -			interface) -				config_set "$2" auto 1 -			;; -		esac +fixup_interface() {  		local iftype ifname device proto -		config_get iftype "$CONFIG_SECTION" TYPE +		local __cfg="$1" + +		config_get iftype "$__cfg" TYPE  		case "$iftype" in  			interface) -				append interfaces "$CONFIG_SECTION" -				config_get proto "$CONFIG_SECTION" proto -				config_get iftype "$CONFIG_SECTION" type -				config_get ifname "$CONFIG_SECTION" ifname -				config_get device "$CONFIG_SECTION" device "$ifname" -				config_set "$CONFIG_SECTION" device "$device" +				append interfaces "$__cfg" +				config_get proto "$__cfg" proto +				config_get iftype "$__cfg" type +				config_get ifname "$__cfg" ifname +				config_get device "$__cfg" device "$ifname" +				config_set "$__cfg" device "$device"  				case "$iftype" in  					bridge) -						config_set "$CONFIG_SECTION" ifnames "$device" -						config_set "$CONFIG_SECTION" ifname br-"$CONFIG_SECTION" +						config_set "$__cfg" ifnames "$device" +						config_set "$__cfg" ifname br-"$CONFIG_SECTION"  					;;  				esac -				( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$CONFIG_SECTION'" +				( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$__cfg'" +			;; +		esac +} + +scan_interfaces() { +	local cfgfile="${1:-network}" +	interfaces= +	config_cb() { +		case "$1" in +			interface) +				config_set "$2" auto 1  			;;  		esac +		fixup_interface "$CONFIG_SECTION"  	}  	config_load "${cfgfile}"  } | 
