Skip to content

Commit

Permalink
Merge pull request #4 from ipfs/fix/nil-address
Browse files Browse the repository at this point in the history
don't panic on being passed nil addresses
  • Loading branch information
whyrusleeping committed May 17, 2016
2 parents ccb540d + 2eaeaff commit 0c94f0f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
9 changes: 9 additions & 0 deletions p2p/host/peerstore/addr_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,11 @@ func (mgr *AddrManager) AddAddrs(p ID, addrs []ma.Multiaddr, ttl time.Duration)
// only expand ttls
exp := time.Now().Add(ttl)
for _, addr := range addrs {
if addr == nil {
log.Warningf("was passed nil multiaddr for %s", p)
continue
}

addrstr := addr.String()
a, found := amap[addrstr]
if !found || exp.After(a.TTL) {
Expand Down Expand Up @@ -134,6 +139,10 @@ func (mgr *AddrManager) SetAddrs(p ID, addrs []ma.Multiaddr, ttl time.Duration)

exp := time.Now().Add(ttl)
for _, addr := range addrs {
if addr == nil {
log.Warningf("was passed nil multiaddr for %s", p)
continue
}
// re-set all of them for new ttl.
addrs := addr.String()

Expand Down
7 changes: 7 additions & 0 deletions p2p/host/peerstore/addr_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,10 @@ func TestSetNegativeTTLClears(t *testing.T) {

testHas(t, nil, m.Addrs(id1))
}

func TestNilAddrsDontBreak(t *testing.T) {
id1 := IDS(t, "QmcNstKuwBBoVTpSCSDrwzjgrRcaYXK833Psuz2EMHwyQN")
m := AddrManager{}
m.SetAddr(id1, nil, time.Hour)
m.AddAddr(id1, nil, time.Hour)
}

0 comments on commit 0c94f0f

Please sign in to comment.