diff --git a/registry/mdns_registry.go b/registry/mdns_registry.go index fde00f37..8ecd37ec 100644 --- a/registry/mdns_registry.go +++ b/registry/mdns_registry.go @@ -353,10 +353,10 @@ func (m *mdnsRegistry) GetService(service string, opts ...GetOption) ([]*Service } addr := "" // prefer ipv4 addrs - if e.AddrV4 != nil { + if len(e.AddrV4) > 0 { addr = e.AddrV4.String() // else use ipv6 - } else if e.AddrV6 != nil { + } else if len(e.AddrV6) > 0 { addr = "[" + e.AddrV6.String() + "]" } else { if logger.V(logger.InfoLevel, logger.DefaultLogger) { diff --git a/util/mdns/client.go b/util/mdns/client.go index 176ebac4..c7b84655 100644 --- a/util/mdns/client.go +++ b/util/mdns/client.go @@ -34,7 +34,7 @@ type ServiceEntry struct { // complete is used to check if we have all the info we need func (s *ServiceEntry) complete() bool { - return (s.AddrV4 != nil || s.AddrV6 != nil || s.Addr != nil) && s.Port != 0 && s.hasTXT + return (len(s.AddrV4) > 0 || len(s.AddrV6) > 0 || len(s.Addr) > 0) && s.Port != 0 && s.hasTXT } // QueryParam is used to customize how a Lookup is performed