mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-26 06:44:32 +00:00
Move [clean|str]SubVer writes/copyStats into a lock
This commit is contained in:
parent
0f31872615
commit
22b4966a29
@ -610,7 +610,10 @@ void CNode::copyStats(CNodeStats &stats)
|
|||||||
X(nTimeOffset);
|
X(nTimeOffset);
|
||||||
X(addrName);
|
X(addrName);
|
||||||
X(nVersion);
|
X(nVersion);
|
||||||
X(cleanSubVer);
|
{
|
||||||
|
LOCK(cs_SubVer);
|
||||||
|
X(cleanSubVer);
|
||||||
|
}
|
||||||
X(fInbound);
|
X(fInbound);
|
||||||
X(fAddnode);
|
X(fAddnode);
|
||||||
X(nStartingHeight);
|
X(nStartingHeight);
|
||||||
|
@ -598,6 +598,7 @@ public:
|
|||||||
// store the sanitized version in cleanSubVer. The original should be used when dealing with
|
// store the sanitized version in cleanSubVer. The original should be used when dealing with
|
||||||
// the network or wire types and the cleaned string used when displayed or logged.
|
// the network or wire types and the cleaned string used when displayed or logged.
|
||||||
std::string strSubVer, cleanSubVer;
|
std::string strSubVer, cleanSubVer;
|
||||||
|
CCriticalSection cs_SubVer; // used for both cleanSubVer and strSubVer
|
||||||
bool fWhitelisted; // This peer can bypass DoS banning.
|
bool fWhitelisted; // This peer can bypass DoS banning.
|
||||||
bool fFeeler; // If true this node is being used as a short lived feeler.
|
bool fFeeler; // If true this node is being used as a short lived feeler.
|
||||||
bool fOneShot;
|
bool fOneShot;
|
||||||
|
@ -1211,6 +1211,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
|||||||
int nVersion;
|
int nVersion;
|
||||||
int nSendVersion;
|
int nSendVersion;
|
||||||
std::string strSubVer;
|
std::string strSubVer;
|
||||||
|
std::string cleanSubVer;
|
||||||
int nStartingHeight = -1;
|
int nStartingHeight = -1;
|
||||||
bool fRelay = true;
|
bool fRelay = true;
|
||||||
|
|
||||||
@ -1246,6 +1247,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
|||||||
vRecv >> addrFrom >> nNonce;
|
vRecv >> addrFrom >> nNonce;
|
||||||
if (!vRecv.empty()) {
|
if (!vRecv.empty()) {
|
||||||
vRecv >> LIMITED_STRING(strSubVer, MAX_SUBVERSION_LENGTH);
|
vRecv >> LIMITED_STRING(strSubVer, MAX_SUBVERSION_LENGTH);
|
||||||
|
cleanSubVer = SanitizeString(strSubVer);
|
||||||
}
|
}
|
||||||
if (!vRecv.empty()) {
|
if (!vRecv.empty()) {
|
||||||
vRecv >> nStartingHeight;
|
vRecv >> nStartingHeight;
|
||||||
@ -1273,8 +1275,11 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
|||||||
|
|
||||||
pfrom->nServices = nServices;
|
pfrom->nServices = nServices;
|
||||||
pfrom->addrLocal = addrMe;
|
pfrom->addrLocal = addrMe;
|
||||||
pfrom->strSubVer = strSubVer;
|
{
|
||||||
pfrom->cleanSubVer = SanitizeString(strSubVer);
|
LOCK(pfrom->cs_SubVer);
|
||||||
|
pfrom->strSubVer = strSubVer;
|
||||||
|
pfrom->cleanSubVer = cleanSubVer;
|
||||||
|
}
|
||||||
pfrom->nStartingHeight = nStartingHeight;
|
pfrom->nStartingHeight = nStartingHeight;
|
||||||
pfrom->fClient = !(nServices & NODE_NETWORK);
|
pfrom->fClient = !(nServices & NODE_NETWORK);
|
||||||
{
|
{
|
||||||
@ -1330,7 +1335,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
|
|||||||
remoteAddr = ", peeraddr=" + pfrom->addr.ToString();
|
remoteAddr = ", peeraddr=" + pfrom->addr.ToString();
|
||||||
|
|
||||||
LogPrintf("receive version message: %s: version %d, blocks=%d, us=%s, peer=%d%s\n",
|
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,
|
pfrom->nStartingHeight, addrMe.ToString(), pfrom->id,
|
||||||
remoteAddr);
|
remoteAddr);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user