From 19fabc71e44bb8f9b4691efc33c1e9d59dabc2dc Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 25 Jan 2026 11:53:32 -0800 Subject: [PATCH] Rotate mDNS query order to avoid repeated blocking --- mdns.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mdns.go b/mdns.go index 47c1499..52cf35b 100644 --- a/mdns.go +++ b/mdns.go @@ -229,10 +229,14 @@ func (t *Tendrils) runMDNSQuerier(ctx context.Context, iface net.Interface, conn } } +var mdnsQueryOffset int + func (t *Tendrils) sendMDNSQueries(ifaceName string, conn *net.UDPConn) { dest := &net.UDPAddr{IP: net.IPv4(224, 0, 0, 251), Port: 5353} - for _, service := range mdnsServices { + n := len(mdnsServices) + for i := 0; i < n; i++ { + service := mdnsServices[(i+mdnsQueryOffset)%n] msg := new(dns.Msg) msg.SetQuestion(service, dns.TypePTR) msg.RecursionDesired = false @@ -244,6 +248,7 @@ func (t *Tendrils) sendMDNSQueries(ifaceName string, conn *net.UDPConn) { conn.WriteToUDP(data, dest) } + mdnsQueryOffset++ if t.DebugMDNS { log.Printf("[mdns] %s: sent queries for %d services", ifaceName, len(mdnsServices))