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:
parent
d1e0cc8cd5
commit
d8cfebaa50
@ -392,6 +392,14 @@ dhcp_add() {
|
|||||||
dhcp_option_add "$cfg" "$networkid"
|
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() {
|
dhcp_option_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local networkid="$2"
|
local networkid="$2"
|
||||||
@ -399,11 +407,21 @@ dhcp_option_add() {
|
|||||||
|
|
||||||
[ "$force" = "0" ] && force=
|
[ "$force" = "0" ] && force=
|
||||||
|
|
||||||
config_get dhcp_option "$cfg" dhcp_option
|
local list_len
|
||||||
for o in $dhcp_option; do
|
config_get list_len "$cfg" dhcp_option_LENGTH
|
||||||
xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$o"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
if [ -n "$list_len" ]; then
|
||||||
|
config_list_foreach "$cfg" dhcp_option dhcp_option_append "$networkid" "$force"
|
||||||
|
else
|
||||||
|
config_get dhcp_option "$cfg" dhcp_option
|
||||||
|
|
||||||
|
[ -n "$dhcp_option" ] && echo "Warning: the 'option dhcp_option' syntax is deprecated, use 'list dhcp_option'" >&2
|
||||||
|
|
||||||
|
local option
|
||||||
|
for option in $dhcp_option; do
|
||||||
|
dhcp_option_append "$option" "$networkid" "$force"
|
||||||
|
done
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
dhcp_domain_add() {
|
dhcp_domain_add() {
|
||||||
|
Loading…
Reference in New Issue
Block a user