Browse Source

Do not set extra flags for unfiltered DNS seed results

0.13
Pieter Wuille 9 years ago
parent
commit
bc0a895d81
  1. 8
      src/chainparams.cpp
  2. 4
      src/chainparams.h
  3. 14
      src/net.cpp

8
src/chainparams.cpp

@ -16,14 +16,6 @@ @@ -16,14 +16,6 @@
#include "chainparamsseeds.h"
std::string CDNSSeedData::getHost(uint64_t requiredServiceBits) const {
//use default host for non-filter-capable seeds or if we use the default service bits (NODE_NETWORK)
if (!supportsServiceBitsFiltering || requiredServiceBits == NODE_NETWORK)
return host;
return strprintf("x%x.%s", requiredServiceBits, host);
}
static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward)
{
CMutableTransaction txNew;

4
src/chainparams.h

@ -13,11 +13,9 @@ @@ -13,11 +13,9 @@
#include <vector>
class CDNSSeedData {
public:
struct CDNSSeedData {
std::string name, host;
bool supportsServiceBitsFiltering;
std::string getHost(uint64_t requiredServiceBits) const;
CDNSSeedData(const std::string &strName, const std::string &strHost, bool supportsServiceBitsFilteringIn = false) : name(strName), host(strHost), supportsServiceBitsFiltering(supportsServiceBitsFilteringIn) {}
};

14
src/net.cpp

@ -1415,6 +1415,18 @@ void MapPort(bool) @@ -1415,6 +1415,18 @@ void MapPort(bool)
static std::string GetDNSHost(const CDNSSeedData& data, ServiceFlags* requiredServiceBits)
{
//use default host for non-filter-capable seeds or if we use the default service bits (NODE_NETWORK)
if (!data.supportsServiceBitsFiltering || *requiredServiceBits == NODE_NETWORK) {
*requiredServiceBits = NODE_NETWORK;
return data.host;
}
return strprintf("x%x.%s", *requiredServiceBits, data.host);
}
void ThreadDNSAddressSeed()
{
// goal: only query DNS seeds if address need is acute
@ -1441,7 +1453,7 @@ void ThreadDNSAddressSeed() @@ -1441,7 +1453,7 @@ void ThreadDNSAddressSeed()
std::vector<CNetAddr> vIPs;
std::vector<CAddress> vAdd;
ServiceFlags requiredServiceBits = nRelevantServices;
if (LookupHost(seed.getHost(requiredServiceBits).c_str(), vIPs, 0, true))
if (LookupHost(GetDNSHost(seed, &requiredServiceBits).c_str(), vIPs, 0, true))
{
BOOST_FOREACH(const CNetAddr& ip, vIPs)
{

Loading…
Cancel
Save