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
|
// only expand ttls
|
||||||
exp := time.Now().Add(ttl)
|
exp := time.Now().Add(ttl)
|
||||||
for _, addr := range addrs {
|
for _, addr := range addrs {
|
||||||
|
if addr == nil {
|
||||||
|
log.Warningf("was passed nil multiaddr for %s", p)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
addrstr := addr.String()
|
addrstr := addr.String()
|
||||||
a, found := amap[addrstr]
|
a, found := amap[addrstr]
|
||||||
if !found || exp.After(a.TTL) {
|
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)
|
exp := time.Now().Add(ttl)
|
||||||
for _, addr := range addrs {
|
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.
|
// re-set all of them for new ttl.
|
||||||
addrs := addr.String()
|
addrs := addr.String()
|
||||||
|
|
||||||
|
@ -200,3 +200,10 @@ func TestSetNegativeTTLClears(t *testing.T) {
|
|||||||
|
|
||||||
testHas(t, nil, m.Addrs(id1))
|
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