|
|
@ -1145,11 +1145,17 @@ void MapPort() |
|
|
|
// Each pair gives a source name and a seed name.
|
|
|
|
// Each pair gives a source name and a seed name.
|
|
|
|
// The first name is used as information source for addrman.
|
|
|
|
// The first name is used as information source for addrman.
|
|
|
|
// The second name should resolve to a list of seed addresses.
|
|
|
|
// The second name should resolve to a list of seed addresses.
|
|
|
|
static const char *strDNSSeed[][2] = { |
|
|
|
static const char *strMainNetDNSSeed[][2] = { |
|
|
|
{"bitcoin.sipa.be", "seed.bitcoin.sipa.be"}, |
|
|
|
{"bitcoin.sipa.be", "seed.bitcoin.sipa.be"}, |
|
|
|
{"bluematt.me", "dnsseed.bluematt.me"}, |
|
|
|
{"bluematt.me", "dnsseed.bluematt.me"}, |
|
|
|
{"dashjr.org", "dnsseed.bitcoin.dashjr.org"}, |
|
|
|
{"dashjr.org", "dnsseed.bitcoin.dashjr.org"}, |
|
|
|
{"xf2.org", "bitseed.xf2.org"}, |
|
|
|
{"xf2.org", "bitseed.xf2.org"}, |
|
|
|
|
|
|
|
{NULL, NULL} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const char *strTestNetDNSSeed[][2] = { |
|
|
|
|
|
|
|
{"bitcoin.petertodd.org", "testnet-seed.bitcoin.petertodd.org"}, |
|
|
|
|
|
|
|
{NULL, NULL} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
void ThreadDNSAddressSeed(void* parg) |
|
|
|
void ThreadDNSAddressSeed(void* parg) |
|
|
@ -1175,32 +1181,31 @@ void ThreadDNSAddressSeed(void* parg) |
|
|
|
|
|
|
|
|
|
|
|
void ThreadDNSAddressSeed2(void* parg) |
|
|
|
void ThreadDNSAddressSeed2(void* parg) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
static const char *(*strDNSSeed)[2] = fTestNet ? strTestNetDNSSeed : strMainNetDNSSeed; |
|
|
|
|
|
|
|
|
|
|
|
printf("ThreadDNSAddressSeed started\n"); |
|
|
|
printf("ThreadDNSAddressSeed started\n"); |
|
|
|
int found = 0; |
|
|
|
int found = 0; |
|
|
|
|
|
|
|
|
|
|
|
if (!fTestNet) |
|
|
|
printf("Loading addresses from DNS seeds (could take a while)\n"); |
|
|
|
{ |
|
|
|
|
|
|
|
printf("Loading addresses from DNS seeds (could take a while)\n"); |
|
|
|
for (unsigned int seed_idx = 0; strDNSSeed[seed_idx][0] != NULL; seed_idx++) { |
|
|
|
|
|
|
|
if (HaveNameProxy()) { |
|
|
|
for (unsigned int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) { |
|
|
|
AddOneShot(strDNSSeed[seed_idx][1]); |
|
|
|
if (HaveNameProxy()) { |
|
|
|
} else { |
|
|
|
AddOneShot(strDNSSeed[seed_idx][1]); |
|
|
|
vector<CNetAddr> vaddr; |
|
|
|
} else { |
|
|
|
vector<CAddress> vAdd; |
|
|
|
vector<CNetAddr> vaddr; |
|
|
|
if (LookupHost(strDNSSeed[seed_idx][1], vaddr)) |
|
|
|
vector<CAddress> vAdd; |
|
|
|
{ |
|
|
|
if (LookupHost(strDNSSeed[seed_idx][1], vaddr)) |
|
|
|
BOOST_FOREACH(CNetAddr& ip, vaddr) |
|
|
|
{ |
|
|
|
{ |
|
|
|
BOOST_FOREACH(CNetAddr& ip, vaddr) |
|
|
|
int nOneDay = 24*3600; |
|
|
|
{ |
|
|
|
CAddress addr = CAddress(CService(ip, GetDefaultPort())); |
|
|
|
int nOneDay = 24*3600; |
|
|
|
addr.nTime = GetTime() - 3*nOneDay - GetRand(4*nOneDay); // use a random age between 3 and 7 days old
|
|
|
|
CAddress addr = CAddress(CService(ip, GetDefaultPort())); |
|
|
|
vAdd.push_back(addr); |
|
|
|
addr.nTime = GetTime() - 3*nOneDay - GetRand(4*nOneDay); // use a random age between 3 and 7 days old
|
|
|
|
found++; |
|
|
|
vAdd.push_back(addr); |
|
|
|
|
|
|
|
found++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
addrman.Add(vAdd, CNetAddr(strDNSSeed[seed_idx][0], true)); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
addrman.Add(vAdd, CNetAddr(strDNSSeed[seed_idx][0], true)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|