aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@bitpay.com>2014-07-29 11:04:46 -0400
committerWladimir J. van der Laan <laanwj@gmail.com>2014-08-19 17:37:07 +0200
commit026b9dfd6e833b4484e73d0b0311e16f3751deed (patch)
treefa186c78af2e3d3cc7ed85fcab82339a395d048c
parent736d8b85b375da1b177141344f743739c77a6cd7 (diff)
downloadbitcoin-026b9dfd6e833b4484e73d0b0311e16f3751deed.tar.xz
Avoid querying DNS seeds, if we have open connections.
The goal is to increase independence and privacy. Rebased-From: 2e7009d
-rw-r--r--doc/release-notes.md1
-rw-r--r--src/init.cpp3
-rw-r--r--src/net.cpp12
3 files changed, 15 insertions, 1 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index d58fcc9035..7dbc0e30a8 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -52,6 +52,7 @@ Protocol and network code:
- Add a way to limit deserialized string lengths and use it
- Add a new checkpoint at block 295,000
- Increase IsStandard() scriptSig length
+- Avoid querying DNS seeds, if we have open connections
Wallet:
- Check redeemScript size does not exceed 520 byte limit
diff --git a/src/init.cpp b/src/init.cpp
index 64b835c9aa..0703a1a594 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -219,7 +219,8 @@ std::string HelpMessage(HelpMessageMode hmm)
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 f979538927..a1ca140e19 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1166,6 +1166,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;