aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net.cpp27
-rw-r--r--src/net.h2
2 files changed, 18 insertions, 11 deletions
diff --git a/src/net.cpp b/src/net.cpp
index c51a1b4a74..767275247d 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1153,9 +1153,22 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
}
}
+void CConnman::NotifyNumConnectionsChanged()
+{
+ size_t vNodesSize;
+ {
+ LOCK(cs_vNodes);
+ vNodesSize = vNodes.size();
+ }
+ if(vNodesSize != nPrevNodeCount) {
+ nPrevNodeCount = vNodesSize;
+ if(clientInterface)
+ clientInterface->NotifyNumConnectionsChanged(vNodesSize);
+ }
+}
+
void CConnman::ThreadSocketHandler()
{
- unsigned int nPrevNodeCount = 0;
while (!interruptNet)
{
//
@@ -1219,16 +1232,7 @@ void CConnman::ThreadSocketHandler()
}
}
}
- size_t vNodesSize;
- {
- LOCK(cs_vNodes);
- vNodesSize = vNodes.size();
- }
- if(vNodesSize != nPrevNodeCount) {
- nPrevNodeCount = vNodesSize;
- if(clientInterface)
- clientInterface->NotifyNumConnectionsChanged(vNodesSize);
- }
+ NotifyNumConnectionsChanged();
//
// Find which sockets have data to receive
@@ -2217,6 +2221,7 @@ CConnman::CConnman(uint64_t nSeed0In, uint64_t nSeed1In) : nSeed0(nSeed0In), nSe
setBannedIsDirty = false;
fAddressesInitialized = false;
nLastNodeId = 0;
+ nPrevNodeCount = 0;
nSendBufferMaxSize = 0;
nReceiveFloodSize = 0;
flagInterruptMsgProc = false;
diff --git a/src/net.h b/src/net.h
index 9f6c426ab7..ba5cd4f5c7 100644
--- a/src/net.h
+++ b/src/net.h
@@ -336,6 +336,7 @@ private:
void ThreadOpenConnections(std::vector<std::string> connect);
void ThreadMessageHandler();
void AcceptConnection(const ListenSocket& hListenSocket);
+ void NotifyNumConnectionsChanged();
void ThreadSocketHandler();
void ThreadDNSAddressSeed();
@@ -406,6 +407,7 @@ private:
std::list<CNode*> vNodesDisconnected;
mutable CCriticalSection cs_vNodes;
std::atomic<NodeId> nLastNodeId;
+ unsigned int nPrevNodeCount;
/** Services this instance offers */
ServiceFlags nLocalServices;