fix nil pointer panic by checking if peer is nil

Fixes #1830

remember that PeerSet#Get can return nil
This commit is contained in:
Anton Kaliaev
2018-06-29 16:03:31 +04:00
parent ada5ef0669
commit 9752e059e1
2 changed files with 11 additions and 8 deletions

View File

@@ -55,8 +55,8 @@ func (ps *PeerSet) Add(peer Peer) error {
return nil
}
// Has returns true iff the PeerSet contains
// the peer referred to by this peerKey.
// Has returns true if the set contains the peer referred to by this
// peerKey, otherwise false.
func (ps *PeerSet) Has(peerKey ID) bool {
ps.mtx.Lock()
_, ok := ps.lookup[peerKey]
@@ -64,8 +64,8 @@ func (ps *PeerSet) Has(peerKey ID) bool {
return ok
}
// HasIP returns true if the PeerSet contains the peer referred to by this IP
// address.
// HasIP returns true if the set contains the peer referred to by this IP
// address, otherwise false.
func (ps *PeerSet) HasIP(peerIP net.IP) bool {
ps.mtx.Lock()
defer ps.mtx.Unlock()
@@ -85,7 +85,8 @@ func (ps *PeerSet) hasIP(peerIP net.IP) bool {
return false
}
// Get looks up a peer by the provided peerKey.
// Get looks up a peer by the provided peerKey. Returns nil if peer is not
// found.
func (ps *PeerSet) Get(peerKey ID) Peer {
ps.mtx.Lock()
defer ps.mtx.Unlock()