diff --git a/peer/peer.go b/peer/peer.go index f98825926..b3d3a7db7 100644 --- a/peer/peer.go +++ b/peer/peer.go @@ -209,6 +209,10 @@ func (p *peer) Addresses() []ma.Multiaddr { // AddAddress adds the given Multiaddr address to Peer's addresses. // Returns whether this address was a newly added address func (p *peer) AddAddress(a ma.Multiaddr) bool { + if a == nil { + panic("adding a nil Multiaddr") + } + p.Lock() defer p.Unlock() diff --git a/routing/dht/dht_test.go b/routing/dht/dht_test.go index e440964dc..524ebc763 100644 --- a/routing/dht/dht_test.go +++ b/routing/dht/dht_test.go @@ -64,6 +64,14 @@ func setupDHTS(ctx context.Context, n int, t *testing.T) ([]ma.Multiaddr, []peer return addrs, peers, dhts } +func makePeerString(t *testing.T, addr string) peer.Peer { + maddr, err := ma.NewMultiaddr(addr) + if err != nil { + t.Fatal(err) + } + return makePeer(maddr) +} + func makePeer(addr ma.Multiaddr) peer.Peer { sk, pk, err := ci.GenerateKeyPair(ci.RSA, 512) if err != nil { diff --git a/routing/dht/ext_test.go b/routing/dht/ext_test.go index fa536edd4..e0cae2a88 100644 --- a/routing/dht/ext_test.go +++ b/routing/dht/ext_test.go @@ -125,10 +125,10 @@ func TestGetFailures(t *testing.T) { fs := &fauxSender{} peerstore := peer.NewPeerstore() - local := makePeer(nil) + local := makePeerString(t, "") d := NewDHT(ctx, local, peerstore, fn, fs, ds.NewMapDatastore()) - other := makePeer(nil) + other := makePeerString(t, "") d.Update(ctx, other) // This one should time out @@ -223,7 +223,7 @@ func TestNotFound(t *testing.T) { fn := &fauxNet{} fs := &fauxSender{} - local := makePeer(nil) + local := makePeerString(t, "") peerstore := peer.NewPeerstore() peerstore.Add(local) @@ -289,7 +289,7 @@ func TestLessThanKResponses(t *testing.T) { u.Debug = false fn := &fauxNet{} fs := &fauxSender{} - local := makePeer(nil) + local := makePeerString(t, "") peerstore := peer.NewPeerstore() peerstore.Add(local)