提交 8f7e0dac 作者: Jeromy

don't return nil multiaddrs from dht messages

License: MIT
Signed-off-by: 's avatarJeromy <why@ipfs.io>
上级 3b8ebe72
......@@ -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
}
......
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")
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论