From 0cfa2d4f4c7c9d91d32294cba5bed8678ee06ea9 Mon Sep 17 00:00:00 2001 From: dongshengyuan <545258830@qq.com> Date: Wed, 12 Aug 2026 13:38:34 +0800 Subject: [PATCH] resolved: keep parsing DNS delegate servers after duplicates The DNS delegate parser tries to filter duplicate DNS= entries, but the duplicate branch returned from the whole parser. This made a duplicate server truncate the rest of the same DNS= line, silently dropping later valid servers. Reproducer: DNS=192.168.77.78 192.168.77.78 192.168.77.79 Before: only 192.168.77.78 appeared in the delegate server list. Follow-up for: 7928c0e0a13cdcc068e58c9ff9106cf40d17ab1b --- src/resolve/resolved-dns-delegate.c | 2 +- test/units/TEST-75-RESOLVED.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/resolve/resolved-dns-delegate.c b/src/resolve/resolved-dns-delegate.c index db34916a29..bfe2860366 100644 --- a/src/resolve/resolved-dns-delegate.c +++ b/src/resolve/resolved-dns-delegate.c @@ -281,7 +281,7 @@ int config_parse_delegate_dns_servers( /* Drop the marker. This is used to find the servers that ceased to exist, see * manager_mark_dns_servers() and manager_flush_marked_dns_servers(). */ dns_server_move_back_and_unmark(s); - return 0; + continue; } r = dns_server_new( diff --git a/test/units/TEST-75-RESOLVED.sh b/test/units/TEST-75-RESOLVED.sh index d3a7d38259..ad4e8f8a42 100755 --- a/test/units/TEST-75-RESOLVED.sh +++ b/test/units/TEST-75-RESOLVED.sh @@ -1493,7 +1493,7 @@ testcase_delegate() { mkdir -p /run/systemd/dns-delegate.d/ cat >/run/systemd/dns-delegate.d/testcase.dns-delegate <