Skip to content

Commit

Permalink
don't return nil multiaddrs from dht messages
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
  • Loading branch information
whyrusleeping committed May 17, 2016
1 parent 3b8ebe7 commit 8f7e0da
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
11 changes: 6 additions & 5 deletions routing/dht/pb/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
15 changes: 15 additions & 0 deletions routing/dht/pb/message_test.go
Original file line number Diff line number Diff line change
@@ -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")
}
}

0 comments on commit 8f7e0da

Please sign in to comment.