aboutsummaryrefslogtreecommitdiff
path: root/src/net_processing.cpp
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2017-02-06 12:08:31 -0500
committerMatt Corallo <git@bluematt.me>2017-02-10 11:32:41 -0500
commit22b4966a29501c4f3f2e970ac5008fbd91e665a9 (patch)
tree2beb02b98598c74d44f4471bf157405804b7c321 /src/net_processing.cpp
parent0f3187261519c7568ef4211ce12b9740a3c1200f (diff)
downloadbitcoin-22b4966a29501c4f3f2e970ac5008fbd91e665a9.tar.xz
Move [clean|str]SubVer writes/copyStats into a lock
Diffstat (limited to 'src/net_processing.cpp')
-rw-r--r--src/net_processing.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index e89a897bd5..b5feac2d59 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -1211,6 +1211,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
int nVersion;
int nSendVersion;
std::string strSubVer;
+ std::string cleanSubVer;
int nStartingHeight = -1;
bool fRelay = true;
@@ -1246,6 +1247,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
vRecv >> addrFrom >> nNonce;
if (!vRecv.empty()) {
vRecv >> LIMITED_STRING(strSubVer, MAX_SUBVERSION_LENGTH);
+ cleanSubVer = SanitizeString(strSubVer);
}
if (!vRecv.empty()) {
vRecv >> nStartingHeight;
@@ -1273,8 +1275,11 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
pfrom->nServices = nServices;
pfrom->addrLocal = addrMe;
- pfrom->strSubVer = strSubVer;
- pfrom->cleanSubVer = SanitizeString(strSubVer);
+ {
+ LOCK(pfrom->cs_SubVer);
+ pfrom->strSubVer = strSubVer;
+ pfrom->cleanSubVer = cleanSubVer;
+ }
pfrom->nStartingHeight = nStartingHeight;
pfrom->fClient = !(nServices & NODE_NETWORK);
{
@@ -1330,7 +1335,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
remoteAddr = ", peeraddr=" + pfrom->addr.ToString();
LogPrintf("receive version message: %s: version %d, blocks=%d, us=%s, peer=%d%s\n",
- pfrom->cleanSubVer, pfrom->nVersion,
+ cleanSubVer, pfrom->nVersion,
pfrom->nStartingHeight, addrMe.ToString(), pfrom->id,
remoteAddr);