Browse Source

DNS seeding

miguelfreitas
Jeff Garzik 14 years ago committed by Jeff Garzik
parent
commit
f684aec4f3
  1. 3
      init.cpp
  2. 27
      net.cpp
  3. 1
      net.h

3
init.cpp

@ -416,6 +416,9 @@ bool AppInit2(int argc, char* argv[])
} }
} }
if (mapArgs.count("-dnsseed"))
DNSAddressSeed();
if (mapArgs.count("-paytxfee")) if (mapArgs.count("-paytxfee"))
{ {
if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee)) if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee))

27
net.cpp

@ -857,7 +857,34 @@ void ThreadSocketHandler2(void* parg)
static const char *strDNSSeed[] = {
"bitseed.xf2.org",
};
void DNSAddressSeed()
{
int found = 0;
printf("Loading addresses from DNS seeds (could take a while)\n");
for (int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) {
struct hostent* phostent = gethostbyname(strDNSSeed[seed_idx]);
if (!phostent)
continue;
for (int host = 0; phostent->h_addr_list[host] != NULL; host++) {
CAddress addr(*(unsigned int*)phostent->h_addr_list[host],
GetDefaultPort(), NODE_NETWORK);
addr.nTime = 0;
if (addr.IsValid() && addr.GetByte(3) != 127) {
AddAddress(addr);
found++;
}
}
}
printf("%d addresses found from DNS seeds\n");
}

1
net.h

@ -30,6 +30,7 @@ CNode* FindNode(unsigned int ip);
CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0); CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0);
void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1); void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1);
bool AnySubscribed(unsigned int nChannel); bool AnySubscribed(unsigned int nChannel);
void DNSAddressSeed();
bool BindListenPort(string& strError=REF(string())); bool BindListenPort(string& strError=REF(string()));
void StartNode(void* parg); void StartNode(void* parg);
bool StopNode(); bool StopNode();

Loading…
Cancel
Save