diff options
author | Jeff Garzik <jgarzik@bitpay.com> | 2014-07-29 11:04:46 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@bitpay.com> | 2014-07-29 11:04:46 -0400 |
commit | 2e7009d67b862cf822a1c70e181de6af659a3096 (patch) | |
tree | 602ae29c65803e3658664e43bcefd41b118fa14d /src | |
parent | 29203228710de3e180914c1d66f48dd7e41270a0 (diff) |
Avoid querying DNS seeds, if we have open connections.
The goal is to increase independence and privacy.
Diffstat (limited to 'src')
-rw-r--r-- | src/init.cpp | 3 | ||||
-rw-r--r-- | src/net.cpp | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/init.cpp b/src/init.cpp index 127529382f..14816f5016 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -240,7 +240,8 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -connect=<ip> " + _("Connect only to the specified node(s)") + "\n"; strUsage += " -discover " + _("Discover own IP address (default: 1 when listening and no -externalip)") + "\n"; strUsage += " -dns " + _("Allow DNS lookups for -addnode, -seednode and -connect") + " " + _("(default: 1)") + "\n"; - strUsage += " -dnsseed " + _("Find peers using DNS lookup (default: 1 unless -connect)") + "\n"; + strUsage += " -dnsseed " + _("Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)") + "\n"; + strUsage += " -forcednsseed " + _("Always query for peer addresses via DNS lookup (default: 0)") + "\n"; strUsage += " -externalip=<ip> " + _("Specify your own public address") + "\n"; strUsage += " -listen " + _("Accept connections from outside (default: 1 if no -proxy or -connect)") + "\n"; strUsage += " -maxconnections=<n> " + _("Maintain at most <n> connections to peers (default: 125)") + "\n"; diff --git a/src/net.cpp b/src/net.cpp index e004fbeb73..62124514c8 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1221,6 +1221,18 @@ void MapPort(bool) void ThreadDNSAddressSeed() { + // goal: only query DNS seeds if address need is acute + if ((addrman.size() > 0) && + (!GetBoolArg("-forcednsseed", false))) { + MilliSleep(11 * 1000); + + LOCK(cs_vNodes); + if (vNodes.size() >= 2) { + LogPrintf("P2P peers available. Skipped DNS seeding.\n"); + return; + } + } + const vector<CDNSSeedData> &vSeeds = Params().DNSSeeds(); int found = 0; |