add SeedNodes to CConnman::Options

Start of a series of changes to clean up the instantiation of connman
by decoupling the command line arguments.
This commit is contained in:
Marko Bencun 2017-05-27 12:00:37 +02:00
parent 5c63d665e5
commit 5d67526026
3 changed files with 12 additions and 9 deletions

View file

@ -1386,11 +1386,6 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
} }
} }
if (gArgs.IsArgSet("-seednode")) {
BOOST_FOREACH(const std::string& strDest, gArgs.GetArgs("-seednode"))
connman.AddOneShot(strDest);
}
#if ENABLE_ZMQ #if ENABLE_ZMQ
pzmqNotificationInterface = CZMQNotificationInterface::Create(); pzmqNotificationInterface = CZMQNotificationInterface::Create();
@ -1659,6 +1654,10 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
connOptions.nMaxOutboundTimeframe = nMaxOutboundTimeframe; connOptions.nMaxOutboundTimeframe = nMaxOutboundTimeframe;
connOptions.nMaxOutboundLimit = nMaxOutboundLimit; connOptions.nMaxOutboundLimit = nMaxOutboundLimit;
if (gArgs.IsArgSet("-seednode")) {
connOptions.vSeedNodes = gArgs.GetArgs("-seednode");
}
if (!connman.Start(scheduler, strNodeError, connOptions)) if (!connman.Start(scheduler, strNodeError, connOptions))
return InitError(strNodeError); return InitError(strNodeError);

View file

@ -1743,9 +1743,9 @@ void CConnman::ThreadOpenConnections()
// * Increase the number of connectable addresses in the tried table. // * Increase the number of connectable addresses in the tried table.
// //
// Method: // Method:
// * Choose a random address from new and attempt to connect to it if we can connect // * Choose a random address from new and attempt to connect to it if we can connect
// successfully it is added to tried. // successfully it is added to tried.
// * Start attempting feeler connections only after node finishes making outbound // * Start attempting feeler connections only after node finishes making outbound
// connections. // connections.
// * Only make a feeler connection once every few minutes. // * Only make a feeler connection once every few minutes.
// //
@ -2212,6 +2212,10 @@ bool CConnman::Start(CScheduler& scheduler, std::string& strNodeError, Options c
SetBestHeight(connOptions.nBestHeight); SetBestHeight(connOptions.nBestHeight);
for (const auto& strDest : connOptions.vSeedNodes) {
AddOneShot(strDest);
}
clientInterface = connOptions.uiInterface; clientInterface = connOptions.uiInterface;
if (clientInterface) { if (clientInterface) {
clientInterface->InitMessage(_("Loading P2P addresses...")); clientInterface->InitMessage(_("Loading P2P addresses..."));

View file

@ -144,6 +144,7 @@ public:
unsigned int nReceiveFloodSize = 0; unsigned int nReceiveFloodSize = 0;
uint64_t nMaxOutboundTimeframe = 0; uint64_t nMaxOutboundTimeframe = 0;
uint64_t nMaxOutboundLimit = 0; uint64_t nMaxOutboundLimit = 0;
std::vector<std::string> vSeedNodes;
}; };
CConnman(uint64_t seed0, uint64_t seed1); CConnman(uint64_t seed0, uint64_t seed1);
~CConnman(); ~CConnman();
@ -233,8 +234,6 @@ public:
void GetBanned(banmap_t &banmap); void GetBanned(banmap_t &banmap);
void SetBanned(const banmap_t &banmap); void SetBanned(const banmap_t &banmap);
void AddOneShot(const std::string& strDest);
bool AddNode(const std::string& node); bool AddNode(const std::string& node);
bool RemoveAddedNode(const std::string& node); bool RemoveAddedNode(const std::string& node);
std::vector<AddedNodeInfo> GetAddedNodeInfo(); std::vector<AddedNodeInfo> GetAddedNodeInfo();
@ -292,6 +291,7 @@ private:
}; };
void ThreadOpenAddedConnections(); void ThreadOpenAddedConnections();
void AddOneShot(const std::string& strDest);
void ProcessOneShot(); void ProcessOneShot();
void ThreadOpenConnections(); void ThreadOpenConnections();
void ThreadMessageHandler(); void ThreadMessageHandler();