about summary refs log tree commit diff
path: root/src/libstore/download.cc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2017-02-16T11·45+0100
committerGitHub <noreply@github.com>2017-02-16T11·45+0100
commitd1139ff36b5df48ddf76600ad17e59a9d1dcd46a (patch)
treee8a8bdb321c3ceb4731265518f584826a28183d8 /src/libstore/download.cc
parent9ff9c3f2f80ba4108e9c945bbfda2c64735f987b (diff)
parente2257d4eeb3f75bac57d9cb77c9ce06b702de050 (diff)
Merge pull request #1215 from k0001/netrc-1
Add netrc-file support
Diffstat (limited to 'src/libstore/download.cc')
-rw-r--r--src/libstore/download.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc
index 85215439a0fa..f93fb1e968a9 100644
--- a/src/libstore/download.cc
+++ b/src/libstore/download.cc
@@ -231,6 +231,14 @@ struct CurlDownloader : public Downloader
                 curl_easy_setopt(req, CURLOPT_SSL_VERIFYHOST, 0);
             }
 
+            /* If no file exist in the specified path, curl continues to work
+             * anyway as if netrc support was disabled. */
+            Path netrcFile = settings.get("netrc-file",
+               (format("%1%/%2%") % settings.nixConfDir % "netrc").str());
+            /* Curl copies the given C string, so the following call is safe. */
+            curl_easy_setopt(req, CURLOPT_NETRC_FILE, netrcFile.c_str());
+            curl_easy_setopt(req, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+
             result.data = std::make_shared<std::string>();
         }