Skip to content

Commit

Permalink
Merge pull request #1488 from Crypt-iQ/server_race_1108
Browse files Browse the repository at this point in the history
server: add addressesMtx to fix race condition
  • Loading branch information
Roasbeef committed Nov 9, 2019
2 parents 4eac390 + c2ca0a4 commit 79943b2
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ type serverPeer struct {
sentAddrs bool
isWhitelisted bool
filter *bloom.Filter
addressesMtx sync.RWMutex
knownAddresses map[string]struct{}
banScore connmgr.DynamicBanScore
quit chan struct{}
Expand Down Expand Up @@ -305,14 +306,18 @@ func (sp *serverPeer) newestBlock() (*chainhash.Hash, int32, error) {
// addKnownAddresses adds the given addresses to the set of known addresses to
// the peer to prevent sending duplicate addresses.
func (sp *serverPeer) addKnownAddresses(addresses []*wire.NetAddress) {
sp.addressesMtx.Lock()
for _, na := range addresses {
sp.knownAddresses[addrmgr.NetAddressKey(na)] = struct{}{}
}
sp.addressesMtx.Unlock()
}

// addressKnown true if the given address is already known to the peer.
func (sp *serverPeer) addressKnown(na *wire.NetAddress) bool {
sp.addressesMtx.RLock()
_, exists := sp.knownAddresses[addrmgr.NetAddressKey(na)]
sp.addressesMtx.RUnlock()
return exists
}

Expand Down

0 comments on commit 79943b2

Please sign in to comment.