Subject: [PATCH] substitute: Send ‘User-Agent’ header.

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Thu, 30 Mar 2017 20:44:39 +0200

* guix/scripts/substitute.scm (narinfo-request): Pass ‘User-Agent’ #:headers
to ‘build-request’.
---

Guix,

This makes the User-Agent sent to substitute servers consistent.

Currently, ‘http-fetch’ (used to download .nars) sets it to ‘GNU Guile’,
while http-multiple-get (used to download .narinfos) leaves it empty.

(This brings the number of scattered '"GNU Guile"' user-agent settings
 in Guix to 5, but moving it to %guix-default-http-user-agent does not
 strike me as a meaningful improvement.)

Kind regards,

T G-R

 guix/scripts/substitute.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index faeb01912..d3bccf4dd 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -520,8 +520,9 @@ indicates that PATH is unavailable at CACHE-URL."
 (define (narinfo-request cache-url path)
   "Return an HTTP request for the narinfo of PATH at CACHE-URL."
   (let ((url (string-append cache-url "/" (store-path-hash-part path)
-                            ".narinfo")))
-    (build-request (string->uri url) #:method 'GET)))
+                            ".narinfo"))
+        (headers '((User-Agent . "GNU Guile"))))
+    (build-request (string->uri url) #:method 'GET #:headers headers)))
 
 (define* (http-multiple-get base-uri proc seed requests
                             #:key port (verify-certificate? #t))
-- 
2.37.4