http-client: Backport delimited input port fix from Guile.

* guix/http-client.scm (make-delimited-input-port): Backport Guile
  commit 5a10e41.
  Monkey-patch 'make-delimited-input-port' for any Guile <= 2.0.11.
This commit is contained in:
Ludovic Courtès 2015-09-10 22:35:45 +02:00
parent 1c01a30d66
commit 6b02a448d2
1 changed files with 4 additions and 2 deletions

View File

@ -166,13 +166,15 @@ closes PORT, unless KEEP-ALIVE? is true."
(define close (define close
(and (not keep-alive?) (and (not keep-alive?)
(lambda () (lambda ()
(close port)))) (close-port port))))
(make-custom-binary-input-port "delimited input port" read! #f #f close)) (make-custom-binary-input-port "delimited input port" read! #f #f close))
(unless (guile-version>? "2.0.9") (unless (guile-version>? "2.0.11")
;; Guile <= 2.0.9 had a bug whereby 'response-body-port' would read more ;; Guile <= 2.0.9 had a bug whereby 'response-body-port' would read more
;; than what 'content-length' says. See Guile commit 802a25b. ;; than what 'content-length' says. See Guile commit 802a25b.
;; Guile <= 2.0.12 had a bug whereby the 'close' method of the response
;; body port would fail with wrong-arg-num. See Guile commit 5a10e41.
(module-set! (resolve-module '(web response)) (module-set! (resolve-module '(web response))
'make-delimited-input-port make-delimited-input-port))) 'make-delimited-input-port make-delimited-input-port)))