1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-25 23:21:54 +08:00

Merge pull request #2710 from ipfs/fix/nil-maddr

don't return nil multiaddrs from dht messages
This commit is contained in:
Jeromy Johnson
2016-05-16 17:58:44 -07:00
2 changed files with 21 additions and 5 deletions

View File

@ -107,14 +107,15 @@ func (m *Message_Peer) Addresses() []ma.Multiaddr {
return nil return nil
} }
var err error maddrs := make([]ma.Multiaddr, 0, len(m.Addrs))
maddrs := make([]ma.Multiaddr, len(m.Addrs)) for _, addr := range m.Addrs {
for i, addr := range m.Addrs { maddr, err := ma.NewMultiaddrBytes(addr)
maddrs[i], err = ma.NewMultiaddrBytes(addr)
if err != nil { if err != nil {
log.Debugf("error decoding Multiaddr for peer: %s", m.GetId()) log.Warningf("error decoding Multiaddr for peer: %s", m.GetId())
continue continue
} }
maddrs = append(maddrs, maddr)
} }
return maddrs return maddrs
} }

View File

@ -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")
}
}