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."}; };