mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-17 18:40:09 +00:00
net: Introduce CConnection::Options to avoid passing so many params
This commit is contained in:
parent
bafa5fc5a1
commit
a19553b992
11
src/init.cpp
11
src/init.cpp
@ -1515,8 +1515,15 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
MapPort(GetBoolArg("-upnp", DEFAULT_UPNP));
|
MapPort(GetBoolArg("-upnp", DEFAULT_UPNP));
|
||||||
|
|
||||||
std::string strNodeError;
|
std::string strNodeError;
|
||||||
int nMaxOutbound = std::min(MAX_OUTBOUND_CONNECTIONS, nMaxConnections);
|
CConnman::Options connOptions;
|
||||||
if(!connman.Start(threadGroup, scheduler, nLocalServices, nRelevantServices, nMaxConnections, nMaxOutbound, chainActive.Height(), &uiInterface, strNodeError))
|
connOptions.nLocalServices = nLocalServices;
|
||||||
|
connOptions.nRelevantServices = nRelevantServices;
|
||||||
|
connOptions.nMaxConnections = nMaxConnections;
|
||||||
|
connOptions.nMaxOutbound = std::min(MAX_OUTBOUND_CONNECTIONS, connOptions.nMaxConnections);
|
||||||
|
connOptions.nBestHeight = chainActive.Height();
|
||||||
|
connOptions.uiInterface = &uiInterface;
|
||||||
|
|
||||||
|
if(!connman.Start(threadGroup, scheduler, strNodeError, connOptions))
|
||||||
return InitError(strNodeError);
|
return InitError(strNodeError);
|
||||||
|
|
||||||
// ********************************************************* Step 12: finished
|
// ********************************************************* Step 12: finished
|
||||||
|
14
src/net.cpp
14
src/net.cpp
@ -2049,26 +2049,26 @@ NodeId CConnman::GetNewNodeId()
|
|||||||
return nLastNodeId.fetch_add(1, std::memory_order_relaxed);
|
return nLastNodeId.fetch_add(1, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CConnman::Start(boost::thread_group& threadGroup, CScheduler& scheduler, ServiceFlags nLocalServicesIn, ServiceFlags nRelevantServicesIn, int nMaxConnectionsIn, int nMaxOutboundIn, int nBestHeightIn, CClientUIInterface* interfaceIn, std::string& strNodeError)
|
bool CConnman::Start(boost::thread_group& threadGroup, CScheduler& scheduler, std::string& strNodeError, Options connOptions)
|
||||||
{
|
{
|
||||||
nTotalBytesRecv = 0;
|
nTotalBytesRecv = 0;
|
||||||
nTotalBytesSent = 0;
|
nTotalBytesSent = 0;
|
||||||
nMaxOutboundLimit = 0;
|
nMaxOutboundLimit = 0;
|
||||||
nMaxOutboundTotalBytesSentInCycle = 0;
|
nMaxOutboundTotalBytesSentInCycle = 0;
|
||||||
nMaxOutboundTimeframe = 60*60*24; //1 day
|
nMaxOutboundTimeframe = 60*60*24; //1 day
|
||||||
nLocalServices = nLocalServicesIn;
|
|
||||||
nRelevantServices = nRelevantServicesIn;
|
|
||||||
nMaxOutboundCycleStartTime = 0;
|
nMaxOutboundCycleStartTime = 0;
|
||||||
|
|
||||||
nMaxConnections = nMaxConnectionsIn;
|
nRelevantServices = connOptions.nRelevantServices;
|
||||||
nMaxOutbound = std::min((nMaxOutboundIn), nMaxConnections);
|
nLocalServices = connOptions.nLocalServices;
|
||||||
|
nMaxConnections = connOptions.nMaxConnections;
|
||||||
|
nMaxOutbound = std::min((connOptions.nMaxOutbound), nMaxConnections);
|
||||||
|
|
||||||
nSendBufferMaxSize = 1000*GetArg("-maxsendbuffer", DEFAULT_MAXSENDBUFFER);
|
nSendBufferMaxSize = 1000*GetArg("-maxsendbuffer", DEFAULT_MAXSENDBUFFER);
|
||||||
nReceiveFloodSize = 1000*GetArg("-maxreceivebuffer", DEFAULT_MAXRECEIVEBUFFER);
|
nReceiveFloodSize = 1000*GetArg("-maxreceivebuffer", DEFAULT_MAXRECEIVEBUFFER);
|
||||||
|
|
||||||
SetBestHeight(nBestHeightIn);
|
SetBestHeight(connOptions.nBestHeight);
|
||||||
|
|
||||||
clientInterface = interfaceIn;
|
clientInterface = connOptions.uiInterface;
|
||||||
if (clientInterface)
|
if (clientInterface)
|
||||||
clientInterface->InitMessage(_("Loading addresses..."));
|
clientInterface->InitMessage(_("Loading addresses..."));
|
||||||
// Load addresses from peers.dat
|
// Load addresses from peers.dat
|
||||||
|
11
src/net.h
11
src/net.h
@ -109,9 +109,18 @@ public:
|
|||||||
CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT),
|
CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Options
|
||||||
|
{
|
||||||
|
ServiceFlags nLocalServices = NODE_NONE;
|
||||||
|
ServiceFlags nRelevantServices = NODE_NONE;
|
||||||
|
int nMaxConnections = 0;
|
||||||
|
int nMaxOutbound = 0;
|
||||||
|
int nBestHeight = 0;
|
||||||
|
CClientUIInterface* uiInterface = nullptr;
|
||||||
|
};
|
||||||
CConnman();
|
CConnman();
|
||||||
~CConnman();
|
~CConnman();
|
||||||
bool Start(boost::thread_group& threadGroup, CScheduler& scheduler, ServiceFlags nLocalServicesIn, ServiceFlags nRelevantServicesIn, int nMaxConnectionsIn, int nMaxOutboundIn, int nBestHeightIn, CClientUIInterface* interfaceIn, std::string& strNodeError);
|
bool Start(boost::thread_group& threadGroup, CScheduler& scheduler, std::string& strNodeError, Options options);
|
||||||
void Stop();
|
void Stop();
|
||||||
bool BindListenPort(const CService &bindAddr, std::string& strError, bool fWhitelisted = false);
|
bool BindListenPort(const CService &bindAddr, std::string& strError, bool fWhitelisted = false);
|
||||||
bool OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false, bool fFeeler = false);
|
bool OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false, bool fFeeler = false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user