netifd: support DHCP sendopts as list options

Support config in the form of ....
	add_list sendopts=router:10.10.10.2
	add_list sendopts=nissrv:20.20.20.2
	add_list sendopts=0x7D:abba

This allows to configure sendopts having white spaces as option value

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
v19.07.3_mercusys_ac12_duma
Hans Dedecker 6 years ago
parent e9b58b22c1
commit 3bd2e195ec

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=netifd PKG_NAME:=netifd
PKG_RELEASE:=3 PKG_RELEASE:=4
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git

@ -16,7 +16,7 @@ proto_dhcp_init_config() {
proto_config_add_string 'reqopts:list(string)' proto_config_add_string 'reqopts:list(string)'
proto_config_add_boolean 'defaultreqopts:bool' proto_config_add_boolean 'defaultreqopts:bool'
proto_config_add_string iface6rd proto_config_add_string iface6rd
proto_config_add_string sendopts proto_config_add_array 'sendopts:list(string)'
proto_config_add_boolean delegate proto_config_add_boolean delegate
proto_config_add_string zone6rd proto_config_add_string zone6rd
proto_config_add_string zone proto_config_add_string zone
@ -25,21 +25,23 @@ proto_dhcp_init_config() {
proto_config_add_boolean classlessroute proto_config_add_boolean classlessroute
} }
proto_dhcp_add_sendopts() {
[ -n "$1" ] && append "$3" "-x $1"
}
proto_dhcp_setup() { proto_dhcp_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
local ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute local ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute
json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes classlessroute
local opt dhcpopts local opt dhcpopts
for opt in $reqopts; do for opt in $reqopts; do
append dhcpopts "-O $opt" append dhcpopts "-O $opt"
done done
for opt in $sendopts; do json_for_each_item proto_dhcp_add_sendopts sendopts dhcpopts
append dhcpopts "-x $opt"
done
[ -z "$hostname" ] && hostname="$(cat /proc/sys/kernel/hostname)" [ -z "$hostname" ] && hostname="$(cat /proc/sys/kernel/hostname)"
[ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts= [ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts=

Loading…
Cancel
Save