This is an automated email from the ASF dual-hosted git repository. rnewson pushed a commit to branch reuse-json-body-3.x in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 81888ddaa5909eca4eafe8472a09d127034971d0 Author: ILYA Khlopotov <[email protected]> AuthorDate: Mon Nov 16 04:01:21 2020 -0800 Use `req_body` field if present When we call `couch_httpd:json_body/1` we can have `req_body` already set. In this case we should return the field as is without any attempt to decompress or decode it. This PR brings the approach we use in `chttpd` into `couch_httpd`. --- src/couch/src/couch_httpd.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/couch/src/couch_httpd.erl b/src/couch/src/couch_httpd.erl index 8f7fedd..53d14d7 100644 --- a/src/couch/src/couch_httpd.erl +++ b/src/couch/src/couch_httpd.erl @@ -599,13 +599,16 @@ body(#httpd{mochi_req=MochiReq, req_body=undefined}) -> body(#httpd{req_body=ReqBody}) -> ReqBody. -json_body(Httpd) -> +json_body(#httpd{req_body=undefined} = Httpd) -> case body(Httpd) of undefined -> throw({bad_request, "Missing request body"}); Body -> ?JSON_DECODE(maybe_decompress(Httpd, Body)) - end. + end; + +json_body(#httpd{req_body=ReqBody}) -> + ReqBody. json_body_obj(Httpd) -> case json_body(Httpd) of
