Merge pull request #4 from ipfs/fix/nil-address

don't panic on being passed nil addresses
This commit is contained in:
Jeromy Johnson 2016-05-16 17:24:29 -07:00
commit 36c3a870c6
2 changed files with 16 additions and 0 deletions

View File

@ -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) {
@ -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()

View File

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