guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/06: http-client: Add #:keep-alive? parameter.


From: Ludovic Courtès
Subject: 04/06: http-client: Add #:keep-alive? parameter.
Date: Mon, 14 Mar 2016 22:35:10 +0000

civodul pushed a commit to branch master
in repository guix.

commit d262a0f36baa5276076fcd160da7cf7661876eca
Author: Ludovic Courtès <address@hidden>
Date:   Mon Mar 14 17:35:09 2016 +0100

    http-client: Add #:keep-alive? parameter.
    
    * guix/http-client.scm (http-fetch): Add #:keep-alive? parameter and
    pass it to 'http-get' or 'http-get*'.
---
 guix/http-client.scm |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/guix/http-client.scm b/guix/http-client.scm
index 2161856..2569382 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -222,11 +222,14 @@ or if EOF is reached."
 (module-define! (resolve-module '(web client))
                 'shutdown (const #f))
 
-(define* (http-fetch uri #:key port (text? #f) (buffered? #t))
+(define* (http-fetch uri #:key port (text? #f) (buffered? #t)
+                     keep-alive?)
   "Return an input port containing the data at URI, and the expected number of
 bytes available or #f.  If TEXT? is true, the data at URI is considered to be
 textual.  Follow any HTTP redirection.  When BUFFERED? is #f, return an
-unbuffered port, suitable for use in `filtered-port'.
+unbuffered port, suitable for use in `filtered-port'.  When KEEP-ALIVE? is
+true, send a 'Connection: keep-alive' HTTP header, in which case PORT may be
+reused for future HTTP requests.
 
 Raise an '&http-get-error' condition if downloading fails."
   (let loop ((uri (if (string? uri)
@@ -246,8 +249,10 @@ Raise an '&http-get-error' condition if downloading fails."
                      ;; Try hard to use the API du jour to get an input port.
                      (if (guile-version>? "2.0.7")
                          (http-get uri #:streaming? #t #:port port
+                                   #:keep-alive? #t
                                    #:headers auth-header) ; 2.0.9+
                          (http-get* uri #:decode-body? text?        ; 2.0.7
+                                    #:keep-alive? #t
                                     #:port port #:headers auth-header)))
                     ((code)
                      (response-code resp)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]