func (m *mdnsService) handleEntry(e *mdns.ServiceEntry) { mpeer, err := peer.IDB58Decode(e.Info) if err != nil { log.Warning("Error parsing peer ID from mdns entry: ", err) return } if mpeer == m.host.ID() { return } maddr, err := manet.FromNetAddr(&net.TCPAddr{ IP: e.AddrV4, Port: e.Port, }) if err != nil { log.Warning("Error parsing multiaddr from mdns entry: ", err) return } pi := peer.PeerInfo{ ID: mpeer, Addrs: []ma.Multiaddr{maddr}, } m.lk.Lock() for _, n := range m.notifees { n.HandlePeerFound(pi) } m.lk.Unlock() }
func newSilentPeer(t *testing.T) (peer.ID, ma.Multiaddr, net.Listener) { dst := testutil.RandPeerIDFatal(t) lst, err := net.Listen("tcp", ":0") if err != nil { t.Fatal(err) } addr, err := manet.FromNetAddr(lst.Addr()) if err != nil { t.Fatal(err) } addrs := []ma.Multiaddr{addr} addrs, err = addrutil.ResolveUnspecifiedAddresses(addrs, nil) if err != nil { t.Fatal(err) } t.Log("new silent peer:", dst, addrs[0]) return dst, addrs[0], lst }