The previous refactoring of ucidef_set_interface() removed the protocol
selection heuristic which breaks the networking defaults for the majority
of boards.
Re-add the protocol selection and rename two bad "proto" references to
the expected "protocol" value.
Fixes: 85048a9c1f ("base-files: rework _ucidef_set_interface to be more generic")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
}
ucidef_set_interface() {
- local network=$1
+ local network=$1; shift
[ -z "$network" ] && return
json_select_object network
json_select_object "$network"
- shift
while [ -n "$1" ]; do
- local opt="$1"
- local val="$2"
- shift; shift;
+ local opt=$1; shift
+ local val=$1; shift
[ -n "$opt" -a -n "$val" ] || break
json_add_string "$opt" "$val"
done
+ if ! json_is_a protocol string; then
+ case "$network" in
+ lan) json_add_string protocol static ;;
+ wan) json_add_string protocol dhcp ;;
+ *) json_add_string protocol none ;;
+ esac
+ fi
+
json_select ..
json_select ..
}