mirror of
https://github.com/openwrt/openwrt.git
synced 2025-06-13 04:38:13 +00:00
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