aboutsummaryrefslogtreecommitdiff
path: root/src/init.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2011-06-06 20:35:01 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2011-06-12 00:29:05 +0200
commit76d660ebd336d3dd47dd555ebbaa721a4cc978b2 (patch)
treece40033b63b17ee2527795781885a76310d5fe0d /src/init.cpp
parente051f1b510c2a8da51c099c73d5750b9c8c9422b (diff)
downloadbitcoin-76d660ebd336d3dd47dd555ebbaa721a4cc978b2.tar.xz
Faster timeout when connecting
Use non-blocking connects, and a select() call to wait a predefined time (5s by default, but configurable with -timeout) for either success or failure. This allows much more connections to be tried per time unit. Based on a patch by phantomcircuit.
Diffstat (limited to 'src/init.cpp')
-rw-r--r--src/init.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/init.cpp b/src/init.cpp
index a510460191..0e2113e7cb 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -151,6 +151,7 @@ bool AppInit2(int argc, char* argv[])
" -gen=0 \t\t " + _("Don't generate coins\n") +
" -min \t\t " + _("Start minimized\n") +
" -datadir=<dir> \t\t " + _("Specify data directory\n") +
+ " -timeout=<n> \t " + _("Specify connection timeout (in milliseconds)\n") +
" -proxy=<ip:port> \t " + _("Connect through socks4 proxy\n") +
" -dns \t " + _("Allow DNS lookups for addnode and connect\n") +
" -addnode=<ip> \t " + _("Add a node to connect to\n") +
@@ -414,6 +415,13 @@ bool AppInit2(int argc, char* argv[])
return false;
}
+ if (mapArgs.count("-timeout"))
+ {
+ int nNewTimeout = GetArg("-timeout", 5000);
+ if (nNewTimeout > 0 && nNewTimeout < 600000)
+ nConnectTimeout = nNewTimeout;
+ }
+
if (mapArgs.count("-printblock"))
{
string strMatch = mapArgs["-printblock"];