From: Alain Greppin Date: Sun, 21 Jul 2024 11:48:56 +0000 (+0200) Subject: systemd.dnssd does not handle local requests (#32991) X-Git-Tag: v257-rc1~864 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a2ae7ed7d05ceabb5c0860288d553ab50d466565;p=thirdparty%2Fsystemd.git systemd.dnssd does not handle local requests (#32991) systemd.dnssd does not handle local requests Fixes https://github.com/systemd/systemd/issues/32990 --- diff --git a/src/resolve/resolved-mdns.c b/src/resolve/resolved-mdns.c index 8f93af38cff..0fb83a3c229 100644 --- a/src/resolve/resolved-mdns.c +++ b/src/resolve/resolved-mdns.c @@ -386,7 +386,10 @@ static int on_mdns_packet(sd_event_source *s, int fd, uint32_t revents, void *us if (r <= 0) return r; - if (manager_packet_from_local_address(m, p)) + /* Refuse traffic from the local host, to avoid query loops. However, allow legacy mDNS + * unicast queries through anyway (we never send those ourselves, hence no risk). + * i.e. check for the source port nr. */ + if (p->sender_port == MDNS_PORT && manager_packet_from_local_address(m, p)) return 0; scope = manager_find_scope(m, p);