From 9cc8047f44b3d333c2c55c140165bfd507f4d41e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 19 Apr 2017 14:54:52 +0200 Subject: [PATCH] Reimplement connect-timeout Fixes #1339. --- src/libstore/download.cc | 2 ++ src/libstore/globals.hh | 3 +++ 2 files changed, 5 insertions(+) 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 useCaseHack{this, nix::useCaseHack, "use-case-hack", "Whether to enable a Darwin-specific hack for dealing with file name collisions."}; + + Setting connectTimeout{this, 0, "connect-timeout", + "Timeout for connecting to servers during downloads. 0 means use curl's builtin default."}; };