From 510bc1735b3507b0f434303fdec5e824c879c838 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 11 May 2017 15:09:09 +0200 Subject: [PATCH] Add an option for extending the user agent header This is useful e.g. for distinguishing traffic to a binary cache (e.g. certain machines can use a different tag in the user agent). --- src/libstore/download.cc | 4 +++- src/libstore/globals.hh | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libstore/download.cc b/src/libstore/download.cc index 5390bdbf5..dc1a3d94f 100644 --- a/src/libstore/download.cc +++ b/src/libstore/download.cc @@ -220,7 +220,9 @@ struct CurlDownloader : public Downloader curl_easy_setopt(req, CURLOPT_URL, request.uri.c_str()); curl_easy_setopt(req, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(req, CURLOPT_NOSIGNAL, 1); - curl_easy_setopt(req, CURLOPT_USERAGENT, ("curl/" LIBCURL_VERSION " Nix/" + nixVersion).c_str()); + curl_easy_setopt(req, CURLOPT_USERAGENT, + ("curl/" LIBCURL_VERSION " Nix/" + nixVersion + + (settings.userAgentSuffix != "" ? " " + settings.userAgentSuffix.get() : "")).c_str()); #if LIBCURL_VERSION_NUM >= 0x072b00 curl_easy_setopt(req, CURLOPT_PIPEWAIT, 1); #endif diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh index 7295b0d30..af37ec61d 100644 --- a/src/libstore/globals.hh +++ b/src/libstore/globals.hh @@ -318,6 +318,9 @@ public: Setting connectTimeout{this, 0, "connect-timeout", "Timeout for connecting to servers during downloads. 0 means use curl's builtin default."}; + + Setting userAgentSuffix{this, "", "user-agent-suffix", + "String appended to the user agent in HTTP requests."}; };