diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -1970,12 +1970,6 @@ } } - if (gArgs.IsArgSet("-seednode")) { - for (const std::string &strDest : gArgs.GetArgs("-seednode")) { - connman.AddOneShot(strDest); - } - } - #if ENABLE_ZMQ pzmqNotificationInterface = CZMQNotificationInterface::Create(); @@ -2312,6 +2306,10 @@ connOptions.nMaxOutboundTimeframe = nMaxOutboundTimeframe; connOptions.nMaxOutboundLimit = nMaxOutboundLimit; + if (gArgs.IsArgSet("-seednode")) { + connOptions.vSeedNodes = gArgs.GetArgs("-seednode"); + } + if (!connman.Start(scheduler, strNodeError, connOptions)) { return InitError(strNodeError); } diff --git a/src/net.h b/src/net.h --- a/src/net.h +++ b/src/net.h @@ -142,6 +142,7 @@ unsigned int nReceiveFloodSize = 0; uint64_t nMaxOutboundTimeframe = 0; uint64_t nMaxOutboundLimit = 0; + std::vector vSeedNodes; }; CConnman(const Config &configIn, uint64_t seed0, uint64_t seed1); ~CConnman(); @@ -229,8 +230,6 @@ void GetBanned(banmap_t &banmap); void SetBanned(const banmap_t &banmap); - void AddOneShot(const std::string &strDest); - bool AddNode(const std::string &node); bool RemoveAddedNode(const std::string &node); std::vector GetAddedNodeInfo(); @@ -291,6 +290,7 @@ }; void ThreadOpenAddedConnections(); + void AddOneShot(const std::string &strDest); void ProcessOneShot(); void ThreadOpenConnections(); void ThreadMessageHandler(); diff --git a/src/net.cpp b/src/net.cpp --- a/src/net.cpp +++ b/src/net.cpp @@ -1841,9 +1841,9 @@ // // Method: // * Choose a random address from new and attempt to connect to it if - // we can connect successfully it is added to tried. + // we can connect successfully it is added to tried. // * Start attempting feeler connections only after node finishes - // making outbound connections. + // making outbound connections. // * Only make a feeler connection once every few minutes. // bool fFeeler = false; @@ -2373,6 +2373,10 @@ SetBestHeight(connOptions.nBestHeight); + for (const auto &strDest : connOptions.vSeedNodes) { + AddOneShot(strDest); + } + clientInterface = connOptions.uiInterface; if (clientInterface) { clientInterface->InitMessage(_("Loading addresses..."));