base-files: board.d: support specifiying the protocol of lan and wan
Some boards, e.g. the Sheeva Plug, require the lan interface to be set to DHCP instead of a static address, therfore support that. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47732
This commit is contained in:
		@@ -32,9 +32,26 @@ json_select_object() {
 | 
			
		||||
_ucidef_set_interface() {
 | 
			
		||||
	local name="$1"
 | 
			
		||||
	local iface="$2"
 | 
			
		||||
	local proto="$3"
 | 
			
		||||
 | 
			
		||||
	json_select_object "$name"
 | 
			
		||||
	json_add_string ifname "$iface"
 | 
			
		||||
 | 
			
		||||
	if ! json_is_a protocol string; then
 | 
			
		||||
		case "$proto" in
 | 
			
		||||
			static|dhcp|none) : ;;
 | 
			
		||||
			*)
 | 
			
		||||
				case "$name" in
 | 
			
		||||
					lan) proto="static" ;;
 | 
			
		||||
					wan) proto="dhcp" ;;
 | 
			
		||||
					*) proto="none" ;;
 | 
			
		||||
				esac
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
 | 
			
		||||
		json_add_string protocol "$proto"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	json_select ..
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -57,19 +74,15 @@ ucidef_set_interface_loopback()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ucidef_set_interface_lan() {
 | 
			
		||||
	local lan_if="$1"
 | 
			
		||||
 | 
			
		||||
	json_select_object network
 | 
			
		||||
	_ucidef_set_interface lan "$lan_if"
 | 
			
		||||
	_ucidef_set_interface lan "$@"
 | 
			
		||||
	json_select ..
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ucidef_set_interface_wan() {
 | 
			
		||||
        local wan_if="$1"
 | 
			
		||||
 | 
			
		||||
        json_select_object network
 | 
			
		||||
        _ucidef_set_interface wan "$wan_if"
 | 
			
		||||
        json_select ..
 | 
			
		||||
	json_select_object network
 | 
			
		||||
	_ucidef_set_interface wan "$@"
 | 
			
		||||
	json_select ..
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ucidef_set_interfaces_lan_wan() {
 | 
			
		||||
@@ -164,14 +177,17 @@ _ucidef_finish_switch_roles() {
 | 
			
		||||
		json_select ..
 | 
			
		||||
 | 
			
		||||
		json_select_object network
 | 
			
		||||
			local devices
 | 
			
		||||
 | 
			
		||||
			json_select_object "$role"
 | 
			
		||||
				# attach previous interfaces (for multi-switch devices)
 | 
			
		||||
				local devices; json_get_var devices ifname
 | 
			
		||||
				json_get_var devices ifname
 | 
			
		||||
				if ! list_contains devices "$device"; then
 | 
			
		||||
					devices="${devices:+$devices }$device"
 | 
			
		||||
				fi
 | 
			
		||||
				json_add_string ifname "$devices"
 | 
			
		||||
			json_select ..
 | 
			
		||||
 | 
			
		||||
			_ucidef_set_interface "$role" "$devices"
 | 
			
		||||
		json_select ..
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user