From f2e30e42e3464683a5a42e296e83bc068babe2ed 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 (cherry picked from commit 0cfa2d4f4c7c9d91d32294cba5bed8678ee06ea9) --- 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 db34916a297..bfe2860366d 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 165882cd106..5567c43be22 100755 --- a/test/units/TEST-75-RESOLVED.sh +++ b/test/units/TEST-75-RESOLVED.sh @@ -1473,7 +1473,7 @@ testcase_delegate() { mkdir -p /run/systemd/dns-delegate.d/ cat >/run/systemd/dns-delegate.d/testcase.dns-delegate <