diff options
author | Robert Newson <rnewson@apache.org> | 2020-09-10 20:06:15 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2020-09-10 20:07:15 +0100 |
commit | 05aeb50c67ee7357788451babc92474f73d11cde (patch) | |
tree | bfd2c176d4f24854e49511923f5009fd766b44d9 | |
parent | 45ddc9350e34c609a0a0b0279d0a70f8a4cbc63b (diff) | |
download | couchdb-fix-buffer-response-true.tar.gz |
Fix buffer_response=truefix-buffer-response-true
We need to call StartFun as it might add headers, etc.
-rw-r--r-- | src/chttpd/src/chttpd.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/chttpd/src/chttpd.erl b/src/chttpd/src/chttpd.erl index fb7d61a06..216b0a93e 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}}) -> |