From db70aeede7b6a4c51a6006b9997cb039bd41599b Mon Sep 17 00:00:00 2001 From: lean Date: Mon, 14 Feb 2022 14:02:29 +0800 Subject: [PATCH] dnsmasq: fix a lot of domains to a single ipset option crashes dnsmasq --- package/network/services/dnsmasq/files/dnsmasq.init | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index c2d324ea4..c8274e70a 100755 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -796,25 +796,23 @@ dhcp_relay_add() { dnsmasq_ipset_add() { local cfg="$1" - local ipsets domains + local ipsets add_ipset() { ipsets="${ipsets:+$ipsets,}$1" } add_domain() { - # leading '/' is expected - domains="$domains/$1" + xappend "--ipset=/$1/$ipsets" } config_list_foreach "$cfg" "name" add_ipset - config_list_foreach "$cfg" "domain" add_domain - if [ -z "$ipsets" ] || [ -z "$domains" ]; then + if [ -z "$ipsets" ]; then return 0 fi - xappend "--ipset=$domains/$ipsets" + config_list_foreach "$cfg" "domain" add_domain } dnsmasq_start()