]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolve: fix no mDNS announcement after probing
authorVishal Chillara Srinivas <vishal.chillarasrinivas@philips.com>
Fri, 13 Oct 2023 09:06:06 +0000 (14:36 +0530)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 16 Oct 2023 07:21:51 +0000 (09:21 +0200)
According to RFC 6762 section 8, an mDNS responder is supposed to announce its
records after probing.
Currently, there is a check in dns_scope_announce which returns if there are any
pending transactions. This prevents announcements from being sent out even if there
are pending non-probe transactions.

To fix this, return only if there are active probe transactions.

src/resolve/resolved-dns-scope.c

index 35085a6ef57deb94e4a9266da3697e463d21ee08..cd5945eb000bbed458326cd28d985c12bc8cc3cd 100644 (file)
@@ -1420,7 +1420,7 @@ int dns_scope_announce(DnsScope *scope, bool goodbye) {
 
         /* Check if we're done with probing. */
         LIST_FOREACH(transactions_by_scope, t, scope->transactions)
-                if (DNS_TRANSACTION_IS_LIVE(t->state))
+                if (t->probing && DNS_TRANSACTION_IS_LIVE(t->state))
                         return 0;
 
         /* Check if there're services pending conflict resolution. */