dnsmasq: support dhcp_option config as a list

Configuring dhcp_option as an option does not allow the usage of white
spaces in the option value; fix this by supporting dhcp_option as a list
config while still supporting the option config to maintain backwards
compatibility

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
Hans Dedecker 2017-04-26 22:37:27 +02:00
parent 4b4f739373
commit 9412fc2949

View file

@ -538,6 +538,14 @@ dhcp_add() {
dhcp_option_add "$cfg" "$networkid"
}
dhcp_option_append() {
local option="$1"
local networkid="$2"
local force="$3"
xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$option"
}
dhcp_option_add() {
# NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions
local cfg="$1"
@ -546,11 +554,20 @@ dhcp_option_add() {
[ "$force" = "0" ] && force=
config_get dhcp_option "$cfg" dhcp_option
for o in $dhcp_option; do
xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$o"
done
local list_len
config_get list_len "$cfg" dhcp_option_LENGTH
if [ -n "$list_len" ]; then
config_list_foreach "$cfg" dhcp_option dhcp_option_append "$networkid" "$force"
else
echo "Warning: the 'option dhcp_option' syntax is deprecated, use 'list dhcp_option'" >&2
config_get dhcp_option "$cfg" dhcp_option
local option
for option in $dhcp_option; do
dhcp_option_append "$option" "$networkid" "$force"
done
fi
}
dhcp_domain_add() {