diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index a0a644fcbd..61dc396707 100755 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -170,7 +170,9 @@ append_rev_server() { } append_address() { + local address_as_local="$2" xappend "--address=$1" + [ $address_as_local -gt 0 ] && xappend "--local=${1%/*}/" } append_connmark_allowlist() { @@ -1036,7 +1038,10 @@ dnsmasq_start() config_list_foreach "$cfg" "listen_address" append_listenaddress config_list_foreach "$cfg" "server" append_server config_list_foreach "$cfg" "rev_server" append_rev_server - config_list_foreach "$cfg" "address" append_address + + local address_as_local + config_get address_as_local "$cfg" address_as_local 0 + config_list_foreach "$cfg" "address" append_address "$address_as_local" local connmark_allowlist_enable config_get connmark_allowlist_enable "$cfg" connmark_allowlist_enable 0