From 8f7e0dacb732490222722e1726c798d90722ce88 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Mon, 16 May 2016 17:09:54 -0700 Subject: [PATCH] don't return nil multiaddrs from dht messages License: MIT Signed-off-by: Jeromy --- routing/dht/pb/message.go | 11 ++++++----- routing/dht/pb/message_test.go | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 routing/dht/pb/message_test.go diff --git a/routing/dht/pb/message.go b/routing/dht/pb/message.go index 919841f0499..ba3104ca248 100644 --- a/routing/dht/pb/message.go +++ b/routing/dht/pb/message.go @@ -107,14 +107,15 @@ func (m *Message_Peer) Addresses() []ma.Multiaddr { return nil } - var err error - maddrs := make([]ma.Multiaddr, len(m.Addrs)) - for i, addr := range m.Addrs { - maddrs[i], err = ma.NewMultiaddrBytes(addr) + maddrs := make([]ma.Multiaddr, 0, len(m.Addrs)) + for _, addr := range m.Addrs { + maddr, err := ma.NewMultiaddrBytes(addr) if err != nil { - log.Debugf("error decoding Multiaddr for peer: %s", m.GetId()) + log.Warningf("error decoding Multiaddr for peer: %s", m.GetId()) continue } + + maddrs = append(maddrs, maddr) } return maddrs } diff --git a/routing/dht/pb/message_test.go b/routing/dht/pb/message_test.go new file mode 100644 index 00000000000..71f4abdc5ec --- /dev/null +++ b/routing/dht/pb/message_test.go @@ -0,0 +1,15 @@ +package dht_pb + +import ( + "testing" +) + +func TestBadAddrsDontReturnNil(t *testing.T) { + mp := new(Message_Peer) + mp.Addrs = [][]byte{[]byte("NOT A VALID MULTIADDR")} + + addrs := mp.Addresses() + if len(addrs) > 0 { + t.Fatal("shouldnt have any multiaddrs") + } +}