diff --git a/net/id.go b/net/id.go index 7ee08356c0fac6bb298c882c6efcde0d24909400..86881de40fe0bb0bbe04e7ff772aec035b29d87c 100644 --- a/net/id.go +++ b/net/id.go @@ -117,6 +117,7 @@ func (ids *IDService) populateMessage(mes *pb.Handshake3, c Conn) { for i, addr := range laddrs { mes.ListenAddrs[i] = addr.Bytes() } + log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs) // set protocol versions mes.H1 = handshake.NewHandshake1("", "") diff --git a/net/mock/mock_net.go b/net/mock/mock_net.go index 09a89f2c419ae1c47a234e2aca9c6277c8d8be04..ffed78b33f9d7c98cd4ebf6ae0c7416f3ad73482 100644 --- a/net/mock/mock_net.go +++ b/net/mock/mock_net.go @@ -62,6 +62,12 @@ func (mn *mocknet) AddPeer(k ic.PrivKey, a ma.Multiaddr) (inet.Network, error) { return nil, err } + // make sure to add listening address! + // this makes debugging things simpler as remembering to register + // an address may cause unexpected failure. + n.Peerstore().AddAddress(n.LocalPeer(), a) + log.Debugf("mocknet added listen addr for peer: %s -- %s", n.LocalPeer(), a) + mn.cg.AddChildGroup(n.cg) mn.Lock() diff --git a/net/mock/mock_peernet.go b/net/mock/mock_peernet.go index ae10417e596ae1e16660828cfa3c2c938cfc4244..d22162507a9a6ea77a9a10864480e8d038c28775 100644 --- a/net/mock/mock_peernet.go +++ b/net/mock/mock_peernet.go @@ -1,6 +1,7 @@ package mocknet import ( + "errors" "fmt" "math/rand" "sync" @@ -121,8 +122,6 @@ func (pn *peernet) DialPeer(ctx context.Context, p peer.ID) error { } func (pn *peernet) connect(p peer.ID) error { - log.Debugf("%s dialing %s", pn.peer, p) - // first, check if we already have live connections pn.RLock() cs, found := pn.connsByPeer[p] @@ -131,6 +130,8 @@ func (pn *peernet) connect(p peer.ID) error { return nil } + log.Debugf("%s (newly) dialing %s", pn.peer, p) + // ok, must create a new connection. we need a link links := pn.mocknet.LinksBetweenPeers(pn.peer, p) if len(links) < 1 { @@ -282,14 +283,14 @@ func (pn *peernet) BandwidthTotals() (in uint64, out uint64) { // ListenAddresses returns a list of addresses at which this network listens. func (pn *peernet) ListenAddresses() []ma.Multiaddr { - return []ma.Multiaddr{} + return pn.Peerstore().Addresses(pn.LocalPeer()) } // InterfaceListenAddresses returns a list of addresses at which this network // listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to // use the known local interfaces. func (pn *peernet) InterfaceListenAddresses() ([]ma.Multiaddr, error) { - return []ma.Multiaddr{}, nil + return nil, errors.New("Mocknet does not have interfaces.") } // Connectedness returns a state signaling connection capabilities