mirror of
https://github.com/libp2p/go-libp2p-peerstore.git
synced 2025-02-05 06:10:09 +08:00
Merge pull request #4 from ipfs/fix/nil-address
don't panic on being passed nil addresses
This commit is contained in:
commit
36c3a870c6
@ -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()
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user