summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-02-27 14:57:54 +0100
committerLudovic Courtès <ludo@gnu.org>2015-02-27 15:08:37 +0100
commite7620dc9951132439abec2a49904aaeeb8de5397 (patch)
tree246dcc4e2f732c09b496aba4c63fd5c9674d1839 /guix
parent2c1fb35377182d3301a265945c88deb12f0b88d4 (diff)
download: Abstract the receive buffer size.
* guix/build/download.scm (%http-receive-buffer-size): New variable. (progress-proc, tls-wrap, http-fetch): Use it.
Diffstat (limited to 'guix')
-rw-r--r--guix/build/download.scm12
1 files changed, 8 insertions, 4 deletions
diff --git a/guix/build/download.scm b/guix/build/download.scm
index e8d61e0d92..c439f6b2b9 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -42,6 +42,10 @@
;;;
;;; Code:
+(define %http-receive-buffer-size
+ ;; Size of the HTTP receive buffer.
+ 65536)
+
(define* (progress-proc file size #:optional (log-port (current-output-port)))
"Return a procedure to show the progress of FILE's download, which is
SIZE byte long. The returned procedure is suitable for use as an
@@ -92,7 +96,7 @@ abbreviation of URI showing the scheme, host, and basename of the file."
(call-with-output-file file
(lambda (out)
(dump-port in out
- #:buffer-size 65536 ; don't flood the log
+ #:buffer-size %http-receive-buffer-size
#:progress (progress-proc (uri-abbreviation uri) size))))
(ftp-close conn))
@@ -182,7 +186,7 @@ which is not available during bootstrap."
(connect s (addrinfo:addr ai))
;; Buffer input and output on this port.
- (setvbuf s _IOFBF)
+ (setvbuf s _IOFBF %http-receive-buffer-size)
(if (eq? 'https (uri-scheme uri))
(tls-wrap s (uri-host uri))
@@ -334,7 +338,7 @@ Return the resulting target URI."
(if (port? bv-or-port)
(begin
(dump-port bv-or-port p
- #:buffer-size 65536 ; don't flood the log
+ #:buffer-size %http-receive-buffer-size
#:progress (progress-proc (uri-abbreviation uri)
size))
(newline))