diff --git a/go.mod b/go.mod index de9a8f4e34..041d9b0000 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.16 require ( github.com/davecgh/go-spew v1.1.1 github.com/decred/base58 v1.0.3 - github.com/decred/dcrd/addrmgr/v2 v2.0.0-20210802141345-893802fc06b0 + github.com/decred/dcrd/addrmgr/v2 v2.0.0-20211005210707-931a579e127b github.com/decred/dcrd/bech32 v1.1.1 github.com/decred/dcrd/blockchain/stake/v4 v4.0.0-20210906140327-598bf66f24a6 github.com/decred/dcrd/blockchain/standalone/v2 v2.0.0 diff --git a/peer/go.mod b/peer/go.mod index 3067e34e67..12e625686b 100644 --- a/peer/go.mod +++ b/peer/go.mod @@ -4,6 +4,7 @@ go 1.11 require ( github.com/davecgh/go-spew v1.1.1 + github.com/decred/dcrd/addrmgr/v2 v2.0.0-20211005210707-931a579e127b github.com/decred/dcrd/chaincfg/chainhash v1.0.2 github.com/decred/dcrd/lru v1.1.0 github.com/decred/dcrd/txscript/v4 v4.0.0-20210129190127-4ebd135a82f1 diff --git a/peer/go.sum b/peer/go.sum index 69aa6f05ec..2924aa48f2 100644 --- a/peer/go.sum +++ b/peer/go.sum @@ -6,6 +6,8 @@ github.com/dchest/siphash v1.2.2 h1:9DFz8tQwl9pTVt5iok/9zKyzA1Q6bRGiF3HPiEEVr9I= github.com/dchest/siphash v1.2.2/go.mod h1:q+IRvb2gOSrUnYoPqHiyHXS0FOBBOdl6tONBlVnOnt4= github.com/decred/base58 v1.0.3 h1:KGZuh8d1WEMIrK0leQRM47W85KqCAdl2N+uagbctdDI= github.com/decred/base58 v1.0.3/go.mod h1:pXP9cXCfM2sFLb2viz2FNIdeMWmZDBKG3ZBYbiSM78E= +github.com/decred/dcrd/addrmgr/v2 v2.0.0-20211005210707-931a579e127b h1:T2pIvkj+0DRUxfw0e9k4XvvNHGELAaertBpTO3Ks0KI= +github.com/decred/dcrd/addrmgr/v2 v2.0.0-20211005210707-931a579e127b/go.mod h1:pFpkgqaKOORZmZ+GwO719PaXqBvBqt5ATUbMQ3QgYl8= github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyLRN07EO0cNBV6DGU= github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= github.com/decred/dcrd/chaincfg/v3 v3.0.0 h1:+TFbu7ZmvBwM+SZz5mrj6cun9ts/6DAL5sqnsaFBHGQ= diff --git a/peer/peer.go b/peer/peer.go index 325d682dd7..e5f02991a7 100644 --- a/peer/peer.go +++ b/peer/peer.go @@ -579,10 +579,14 @@ func (p *Peer) ID() int32 { // This function is safe for concurrent access. func (p *Peer) NA() *wire.NetAddress { p.flagsMtx.Lock() - na := p.na + if p.na == nil { + p.flagsMtx.Unlock() + return nil + } + na := *p.na p.flagsMtx.Unlock() - return na + return &na } // Addr returns the peer address. @@ -1852,7 +1856,7 @@ func (p *Peer) localVersionMsg() (*wire.MsgVersion, error) { } } - theirNA := p.na + theirNA := p.NA() // If we are behind a proxy and the connection comes from the proxy then // we return an unroutable address as their address. This is to prevent