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
+}