diff --git a/src/seeder/bitcoin.h b/src/seeder/bitcoin.h --- a/src/seeder/bitcoin.h +++ b/src/seeder/bitcoin.h @@ -28,6 +28,8 @@ Finished, }; +struct CServiceResult; + class CSeederNode { private: SOCKET sock; @@ -75,7 +77,6 @@ int GetStartingHeight() { return nStartingHeight; } }; -bool TestNode(const CService &cip, int &ban, int &client, std::string &clientSV, - int &blocks, std::vector *vAddr); +void TestNode(CServiceResult &nodeRecord, std::vector *vAddr); #endif // BITCOIN_SEEDER_BITCOIN_H diff --git a/src/seeder/bitcoin.cpp b/src/seeder/bitcoin.cpp --- a/src/seeder/bitcoin.cpp +++ b/src/seeder/bitcoin.cpp @@ -328,25 +328,23 @@ return (ban == 0) && res; } -bool TestNode(const CService &cip, int &ban, int &clientV, - std::string &clientSV, int &blocks, - std::vector *vAddr) { +void TestNode(CServiceResult &nodeRecord, std::vector *vAddr) { try { - CSeederNode node(cip, vAddr); + CSeederNode node(nodeRecord.service, vAddr); bool ret = node.Run(); if (!ret) { - ban = node.GetBan(); + nodeRecord.nBanTime = node.GetBan(); } else { - ban = 0; + nodeRecord.nBanTime = 0; } - clientV = node.GetClientVersion(); - clientSV = node.GetClientSubVersion(); - blocks = node.GetStartingHeight(); + nodeRecord.nClientV = node.GetClientVersion(); + nodeRecord.strClientV = node.GetClientSubVersion(); + nodeRecord.nHeight = node.GetStartingHeight(); // tfm::format(std::cout, "%s: %s!!!\n", cip.ToString().c_str(), ret ? // "GOOD" : "BAD"); - return ret; + nodeRecord.fGood = ret; } catch (std::ios_base::failure &e) { - ban = 0; - return false; + nodeRecord.nBanTime = 0; + nodeRecord.fGood = false; } } diff --git a/src/seeder/main.cpp b/src/seeder/main.cpp --- a/src/seeder/main.cpp +++ b/src/seeder/main.cpp @@ -190,9 +190,7 @@ res.nHeight = 0; res.strClientV = ""; bool getaddr = res.ourLastSuccess + 86400 < now; - res.fGood = TestNode(res.service, res.nBanTime, res.nClientV, - res.strClientV, res.nHeight, - getaddr ? &addr : nullptr); + TestNode(res, getaddr ? &addr : nullptr); } db.ResultMany(ips);