@cryptotaxi247 / kubo / commits / 8f7e0dacb

don't return nil multiaddrs from dht messages

License: MIT Signed-off-by: Jeromy <why@ipfs.io>

Jeromy committed May 16, 2016 at 17:09 UTC 8f7e0dacb732490222722e1726c798d90722ce88
2 files changed +21 -5
routing/dht/pb/message.go
+6 -5
@@ -107,14 +107,15 @@ func (m *Message_Peer) Addresses() []ma.Multiaddr {
107 return nil
108 }
109
110 - var err error
111 - maddrs := make([]ma.Multiaddr, len(m.Addrs))
112 - for i, addr := range m.Addrs {
113 - maddrs[i], err = ma.NewMultiaddrBytes(addr)
110 + maddrs := make([]ma.Multiaddr, 0, len(m.Addrs))
111 + for _, addr := range m.Addrs {
112 + maddr, err := ma.NewMultiaddrBytes(addr)
113 if err != nil {
115 - log.Debugf("error decoding Multiaddr for peer: %s", m.GetId())
114 + log.Warningf("error decoding Multiaddr for peer: %s", m.GetId())
115 continue
116 }
117 +
118 + maddrs = append(maddrs, maddr)
119 }
120 return maddrs
121 }
routing/dht/pb/message_test.go new
+15
@@ -0,0 +1,15 @@
1 +package dht_pb
2 +
3 +import (
4 + "testing"
5 +)
6 +
7 +func TestBadAddrsDontReturnNil(t *testing.T) {
8 + mp := new(Message_Peer)
9 + mp.Addrs = [][]byte{[]byte("NOT A VALID MULTIADDR")}
10 +
11 + addrs := mp.Addresses()
12 + if len(addrs) > 0 {
13 + t.Fatal("shouldnt have any multiaddrs")
14 + }
15 +}