net: Add missing locks in net.{cpp,h}
* writing variable 'nTotalBytesRecv' requires holding mutex 'cs_totalBytesRecv' exclusively * writing variables 'nTotalBytesSent'/'nMaxOutboundTotalBytesSentInCycle'/'nMaxOutboundCycleStartTime' require holding mutex 'cs_totalBytesSent' exclusively * writing variable 'nMaxOutboundTimeframe'/'nMaxOutboundLimit' require holding mutex 'cs_totalBytesSent' exclusively * writing variable 'vAddedNodes' requires holding mutex 'cs_vAddedNodes' exclusively
This commit is contained in:
parent
d4267a3ab2
commit
63f21d27ee
2 changed files with 19 additions and 7 deletions
14
src/net.cpp
14
src/net.cpp
|
@ -2269,10 +2269,16 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions)
|
||||||
{
|
{
|
||||||
Init(connOptions);
|
Init(connOptions);
|
||||||
|
|
||||||
nTotalBytesRecv = 0;
|
{
|
||||||
nTotalBytesSent = 0;
|
LOCK(cs_totalBytesRecv);
|
||||||
nMaxOutboundTotalBytesSentInCycle = 0;
|
nTotalBytesRecv = 0;
|
||||||
nMaxOutboundCycleStartTime = 0;
|
}
|
||||||
|
{
|
||||||
|
LOCK(cs_totalBytesSent);
|
||||||
|
nTotalBytesSent = 0;
|
||||||
|
nMaxOutboundTotalBytesSentInCycle = 0;
|
||||||
|
nMaxOutboundCycleStartTime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (fListen && !InitBinds(connOptions.vBinds, connOptions.vWhiteBinds)) {
|
if (fListen && !InitBinds(connOptions.vBinds, connOptions.vWhiteBinds)) {
|
||||||
if (clientInterface) {
|
if (clientInterface) {
|
||||||
|
|
12
src/net.h
12
src/net.h
|
@ -158,10 +158,16 @@ public:
|
||||||
m_msgproc = connOptions.m_msgproc;
|
m_msgproc = connOptions.m_msgproc;
|
||||||
nSendBufferMaxSize = connOptions.nSendBufferMaxSize;
|
nSendBufferMaxSize = connOptions.nSendBufferMaxSize;
|
||||||
nReceiveFloodSize = connOptions.nReceiveFloodSize;
|
nReceiveFloodSize = connOptions.nReceiveFloodSize;
|
||||||
nMaxOutboundTimeframe = connOptions.nMaxOutboundTimeframe;
|
{
|
||||||
nMaxOutboundLimit = connOptions.nMaxOutboundLimit;
|
LOCK(cs_totalBytesSent);
|
||||||
|
nMaxOutboundTimeframe = connOptions.nMaxOutboundTimeframe;
|
||||||
|
nMaxOutboundLimit = connOptions.nMaxOutboundLimit;
|
||||||
|
}
|
||||||
vWhitelistedRange = connOptions.vWhitelistedRange;
|
vWhitelistedRange = connOptions.vWhitelistedRange;
|
||||||
vAddedNodes = connOptions.m_added_nodes;
|
{
|
||||||
|
LOCK(cs_vAddedNodes);
|
||||||
|
vAddedNodes = connOptions.m_added_nodes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CConnman(uint64_t seed0, uint64_t seed1);
|
CConnman(uint64_t seed0, uint64_t seed1);
|
||||||
|
|
Loading…
Add table
Reference in a new issue