You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2020/09/10 19:06:53 UTC
[couchdb] branch fix-buffer-response-true created (now 5965b1a)
This is an automated email from the ASF dual-hosted git repository.
rnewson pushed a change to branch fix-buffer-response-true
in repository https://gitbox.apache.org/repos/asf/couchdb.git.
at 5965b1a Fix buffer_response=true
This branch includes the following new commits:
new 5965b1a Fix buffer_response=true
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[couchdb] 01/01: Fix buffer_response=true
Posted by rn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rnewson pushed a commit to branch fix-buffer-response-true
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 5965b1a865321895758f88daef10f1d4bba98be1
Author: Robert Newson <rn...@apache.org>
AuthorDate: Thu Sep 10 20:06:15 2020 +0100
Fix buffer_response=true
We need to call StartFun as it might add headers, etc.
---
src/chttpd/src/chttpd.erl | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/chttpd/src/chttpd.erl b/src/chttpd/src/chttpd.erl
index fb7d61a..216b0a9 100644
--- a/src/chttpd/src/chttpd.erl
+++ b/src/chttpd/src/chttpd.erl
@@ -855,13 +855,19 @@ end_delayed_json_response(#delayed_resp{buffer_response=false}=DelayedResp) ->
end_delayed_json_response(#delayed_resp{buffer_response=true}=DelayedResp) ->
#delayed_resp{
+ start_fun = StartFun,
req = Req,
code = Code,
headers = Headers,
chunks = Chunks
} = DelayedResp,
- {ok, Resp} = start_response_length(Req, Code, Headers, iolist_size(Chunks)),
- send(Resp, lists:reverse(Chunks)).
+ {ok, Resp} = StartFun(Req, Code, Headers),
+ lists:foreach(
+ fun
+ ("") -> ok;
+ (Chunk) -> send_chunk(Resp, Chunk)
+ end, lists:reverse(Chunks)),
+ end_json_response(Resp).
get_delayed_req(#delayed_resp{req=#httpd{mochi_req=MochiReq}}) ->