From 2a1e94de47bdf1f1a73d0e18e1e9c2b6669dda3e Mon Sep 17 00:00:00 2001 From: Adam Tucker Date: Tue, 25 Jun 2024 14:05:28 -0600 Subject: [PATCH] simplify AddAddress --- p2p/pex/addrbook.go | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/p2p/pex/addrbook.go b/p2p/pex/addrbook.go index 9e8cb3761e..6eb7d3235e 100644 --- a/p2p/pex/addrbook.go +++ b/p2p/pex/addrbook.go @@ -225,17 +225,7 @@ func (a *addrBook) AddAddress(addr *p2p.NetAddress, src *p2p.NetAddress) error { a.mtx.Lock() defer a.mtx.Unlock() - if a.isRegionTracking { - region, err := p2p.GetRegionFromIP(addr.IP.String()) - a.curRegionQueryCount++ - if err != nil { - return err - } - - return a.addAddressWithRegion(addr, src, region) - } else { - return a.addAddress(addr, src) - } + return a.addAddress(addr, src) } // RemoveAddress implements AddrBook - removes the address from the book. @@ -788,24 +778,6 @@ func (a *addrBook) addAddressCommon(addr, src *p2p.NetAddress) (*knownAddress, e return ka, nil } -// addAddressWithRegion adds an address to a "new" bucket with a specified region. -// If the address is already in a bucket, it only adds it probabilistically. -// Returns an error if the address is non-routable or if it fails to calculate the bucket. -// The region argument specifies the region to associate with the address. -func (a *addrBook) addAddressWithRegion(addr, src *p2p.NetAddress, region string) error { - ka, err := a.addAddressCommon(addr, src) - if err != nil || ka == nil { - return err - } - ka.Region = region - - bucket, err := a.calcNewBucket(addr, src) - if err != nil { - return err - } - return a.addToNewBucket(ka, bucket) -} - // addAddress adds an address to a "new" bucket. // If the address is already in a bucket, it only adds it probabilistically. // Returns an error if the address is non-routable or if it fails to calculate the bucket. @@ -815,6 +787,15 @@ func (a *addrBook) addAddress(addr, src *p2p.NetAddress) error { return err } + if a.isRegionTracking { + region, err := p2p.GetRegionFromIP(addr.IP.String()) + a.curRegionQueryCount++ + if err != nil { + return err + } + ka.Region = region + } + bucket, err := a.calcNewBucket(addr, src) if err != nil { return err