mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
Merge #8996: Network activity toggle
19f46f1Qt: New network_disabled icon (Luke Dashjr)54cf997RPC/Net: Use boolean consistently for networkactive, and remove from getinfo (Luke Dashjr)b2b33d9Overhaul network activity toggle (Jonas Schnelli)32efa79Qt: Add GUI feedback and control of network activity state. (Jon Lund Steffensen)e38993bRPC: Add "togglenetwork" method to toggle network activity temporarily (Jon Lund Steffensen)7c9a98aAllow network activity to be temporarily suspended. (Jon Lund Steffensen)
This commit is contained in:
31
src/net.cpp
31
src/net.cpp
@@ -985,6 +985,12 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!fNetworkActive) {
|
||||
LogPrintf("connection from %s dropped: not accepting new connections\n", addr.ToString());
|
||||
CloseSocket(hSocket);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsSelectableSocket(hSocket))
|
||||
{
|
||||
LogPrintf("connection from %s dropped: non-selectable socket\n", addr.ToString());
|
||||
@@ -1784,6 +1790,9 @@ bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai
|
||||
// Initiate outbound network connection
|
||||
//
|
||||
boost::this_thread::interruption_point();
|
||||
if (!fNetworkActive) {
|
||||
return false;
|
||||
}
|
||||
if (!pszDest) {
|
||||
if (IsLocal(addrConnect) ||
|
||||
FindNode((CNetAddr)addrConnect) || IsBanned(addrConnect) ||
|
||||
@@ -2025,8 +2034,30 @@ void Discover(boost::thread_group& threadGroup)
|
||||
#endif
|
||||
}
|
||||
|
||||
void CConnman::SetNetworkActive(bool active)
|
||||
{
|
||||
if (fDebug) {
|
||||
LogPrint("net", "SetNetworkActive: %s\n", active);
|
||||
}
|
||||
|
||||
if (!active) {
|
||||
fNetworkActive = false;
|
||||
|
||||
LOCK(cs_vNodes);
|
||||
// Close sockets to all nodes
|
||||
BOOST_FOREACH(CNode* pnode, vNodes) {
|
||||
pnode->CloseSocketDisconnect();
|
||||
}
|
||||
} else {
|
||||
fNetworkActive = true;
|
||||
}
|
||||
|
||||
uiInterface.NotifyNetworkActiveChanged(fNetworkActive);
|
||||
}
|
||||
|
||||
CConnman::CConnman(uint64_t nSeed0In, uint64_t nSeed1In) : nSeed0(nSeed0In), nSeed1(nSeed1In)
|
||||
{
|
||||
fNetworkActive = true;
|
||||
setBannedIsDirty = false;
|
||||
fAddressesInitialized = false;
|
||||
nLastNodeId = 0;
|
||||
|
||||
Reference in New Issue
Block a user