@cryptotaxi247 / kubo / commits / 497297b24

net/mocknet: fixed listenaddrs (misrepresenting)

some dht tests signaled "sending peer empty addresses" which would then cause a failure. this was a misrepresentation on the part of mocknet. it has been corrected.

Juan Batiz-Benet committed Dec 22, 2014 at 21:07 UTC 497297b243c9d5ddfa3aab73af27bd62a2bfe934
3 files changed +12 -4
net/id.go
+1
@@ -117,6 +117,7 @@ func (ids *IDService) populateMessage(mes *pb.Handshake3, c Conn) {
117 for i, addr := range laddrs {
118 mes.ListenAddrs[i] = addr.Bytes()
119 }
120 + log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs)
121
122 // set protocol versions
123 mes.H1 = handshake.NewHandshake1("", "")
net/mock/mock_net.go
+6
@@ -62,6 +62,12 @@ func (mn *mocknet) AddPeer(k ic.PrivKey, a ma.Multiaddr) (inet.Network, error) {
62 return nil, err
63 }
64
65 + // make sure to add listening address!
66 + // this makes debugging things simpler as remembering to register
67 + // an address may cause unexpected failure.
68 + n.Peerstore().AddAddress(n.LocalPeer(), a)
69 + log.Debugf("mocknet added listen addr for peer: %s -- %s", n.LocalPeer(), a)
70 +
71 mn.cg.AddChildGroup(n.cg)
72
73 mn.Lock()
net/mock/mock_peernet.go
+5 -4
@@ -1,6 +1,7 @@
1 package mocknet
2
3 import (
4 + "errors"
5 "fmt"
6 "math/rand"
7 "sync"
@@ -121,8 +122,6 @@ func (pn *peernet) DialPeer(ctx context.Context, p peer.ID) error {
122 }
123
124 func (pn *peernet) connect(p peer.ID) error {
124 - log.Debugf("%s dialing %s", pn.peer, p)
125 -
125 // first, check if we already have live connections
126 pn.RLock()
127 cs, found := pn.connsByPeer[p]
@@ -131,6 +130,8 @@ func (pn *peernet) connect(p peer.ID) error {
130 return nil
131 }
132
133 + log.Debugf("%s (newly) dialing %s", pn.peer, p)
134 +
135 // ok, must create a new connection. we need a link
136 links := pn.mocknet.LinksBetweenPeers(pn.peer, p)
137 if len(links) < 1 {
@@ -282,14 +283,14 @@ func (pn *peernet) BandwidthTotals() (in uint64, out uint64) {
283
284 // ListenAddresses returns a list of addresses at which this network listens.
285 func (pn *peernet) ListenAddresses() []ma.Multiaddr {
285 - return []ma.Multiaddr{}
286 + return pn.Peerstore().Addresses(pn.LocalPeer())
287 }
288
289 // InterfaceListenAddresses returns a list of addresses at which this network
290 // listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to
291 // use the known local interfaces.
292 func (pn *peernet) InterfaceListenAddresses() ([]ma.Multiaddr, error) {
292 - return []ma.Multiaddr{}, nil
293 + return nil, errors.New("Mocknet does not have interfaces.")
294 }
295
296 // Connectedness returns a state signaling connection capabilities