aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-04-19 14:54:52 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-04-19 14:54:52 +0200
commit9cc8047f44b3d333c2c55c140165bfd507f4d41e (patch)
tree6c88d7d1fe722f43951e307f13700e293a3debb5 /src
parentb0cb11722626e906a73f10dd9a0c9eea29faf43a (diff)
Reimplement connect-timeout
Fixes #1339.
Diffstat (limited to 'src')
-rw-r--r--src/libstore/download.cc2
-rw-r--r--src/libstore/globals.hh3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc
index 42fd05bd8..4d502219e 100644
--- a/src/libstore/download.cc
+++ b/src/libstore/download.cc
@@ -249,6 +249,8 @@ struct CurlDownloader : public Downloader
curl_easy_setopt(req, CURLOPT_SSL_VERIFYHOST, 0);
}
+ curl_easy_setopt(req, CURLOPT_CONNECTTIMEOUT, settings.connectTimeout.get());
+
/* If no file exist in the specified path, curl continues to work
anyway as if netrc support was disabled. */
curl_easy_setopt(req, CURLOPT_NETRC_FILE, settings.netrcFile.get().c_str());
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index f3a6038ca..72863920d 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -270,6 +270,9 @@ public:
struct CaseHackTag { };
Setting<bool, CaseHackTag> useCaseHack{this, nix::useCaseHack, "use-case-hack",
"Whether to enable a Darwin-specific hack for dealing with file name collisions."};
+
+ Setting<unsigned long> connectTimeout{this, 0, "connect-timeout",
+ "Timeout for connecting to servers during downloads. 0 means use curl's builtin default."};
};