diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-12-09 18:11:14 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-12-09 18:11:14 +0100 |
commit | f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5 (patch) | |
tree | ec47c7ee5d5579cfa00f13b5038ff3d8c87e4a48 /guix/scripts/publish.scm | |
parent | 13b5f44b475aa385d580f7e19b907210bc1d6d99 (diff) | |
parent | 2608e40988ba8cf51723fe0d21bdedf6b3997c9c (diff) | |
download | gnu-guix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar gnu-guix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar.gz |
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'guix/scripts/publish.scm')
-rw-r--r-- | guix/scripts/publish.scm | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 1b32f639ea..33a7b3bd42 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -365,6 +365,14 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")." (response-headers response) eq?))) +(define (with-content-length response length) + "Return RESPONSE with a 'content-length' header set to LENGTH." + (set-field response (response-headers) + (alist-cons 'content-length length + (alist-delete 'content-length + (response-headers response) + eq?)))) + (define-syntax-rule (swallow-EPIPE exp ...) "Swallow EPIPE errors raised by EXP..." (catch 'system-error @@ -432,13 +440,8 @@ blocking." (call-with-input-file (utf8->string body) (lambda (input) (let* ((size (stat:size (stat input))) - (headers (alist-cons 'content-length size - (alist-delete 'content-length - (response-headers response) - eq?))) - (response (write-response (set-field response - (response-headers) - headers) + (response (write-response (with-content-length response + size) client)) (output (response-port response))) (dump-port input output) |