Response filtering

This commit is contained in:
Neil Alexander 2020-05-10 13:17:23 +01:00
parent 2dbbfe7f10
commit 21fa0eb4ff
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -336,10 +336,10 @@ func (s *mDNSServer) listen() {
incoming := make(chan *mdns.ServiceEntry) incoming := make(chan *mdns.ServiceEntry)
go func() { go func() {
defer close(incoming)
if err := mdns.Listen(incoming, s.stop, &s.intf); err != nil { if err := mdns.Listen(incoming, s.stop, &s.intf); err != nil {
s.mdns.log.Println("Failed to initialize resolver:", err.Error()) s.mdns.log.Println("Failed to initialize resolver:", err.Error())
} }
close(incoming)
}() }()
for { for {
@ -348,6 +348,10 @@ func (s *mDNSServer) listen() {
s.mdns.log.Debugln("Stopped listening for mDNS on", s.intf.Name) s.mdns.log.Debugln("Stopped listening for mDNS on", s.intf.Name)
return return
case entry := <-incoming: case entry := <-incoming:
suffix := fmt.Sprintf("%s.%s", MDNSService, MDNSDomain)
if entry.Name[len(entry.Name)-len(suffix):] != suffix {
continue
}
if bytes.Equal(entry.Addr, s.ourIP) { if bytes.Equal(entry.Addr, s.ourIP) {
continue continue
} }