diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2020-09-10 13:38:48 -0500 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2020-09-10 13:38:48 -0500 |
commit | e03d171b14450fd06c55b5668b380dad53ffa75a (patch) | |
tree | 29224670e621d2406fb176e3dd4f5b39a624a6e6 | |
parent | d18b84768280e8e5584bc7b00b6e1194c13321e6 (diff) | |
download | couchdb-prototype/fdb-layer-final-final-merge.tar.gz |
Fix missing Content-Type in buffered responsesarchive/prototype/fdb-layer-final-final-mergeprototype/fdb-layer-final-final-merge
It turns out the "application/json" header is added downstream of the
delayed response's StartFun which is skipped for buffered responses.
This adds those headers back into the response.
-rw-r--r-- | src/chttpd/src/chttpd.erl | 4 | ||||
-rw-r--r-- | src/chttpd/test/eunit/chttpd_delayed_test.erl | 2 | ||||
-rw-r--r-- | src/couch/src/couch_httpd.erl | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/chttpd/src/chttpd.erl b/src/chttpd/src/chttpd.erl index fdca5c810..66613ec6a 100644 --- a/src/chttpd/src/chttpd.erl +++ b/src/chttpd/src/chttpd.erl @@ -877,9 +877,11 @@ end_delayed_json_response(#delayed_resp{buffer_response=true}=DelayedResp) -> #delayed_resp{ req = Req, code = Code, - headers = Headers, + headers = BaseHeaders, chunks = Chunks } = DelayedResp, + couch_httpd:initialize_jsonp(Req), + Headers = couch_httpd:maybe_add_default_headers(Req, BaseHeaders), {ok, Resp} = start_response_length(Req, Code, Headers, iolist_size(Chunks)), send(Resp, lists:reverse(Chunks)). diff --git a/src/chttpd/test/eunit/chttpd_delayed_test.erl b/src/chttpd/test/eunit/chttpd_delayed_test.erl index 64232dcf8..22c211847 100644 --- a/src/chttpd/test/eunit/chttpd_delayed_test.erl +++ b/src/chttpd/test/eunit/chttpd_delayed_test.erl @@ -17,7 +17,7 @@ setup() -> Hashed = couch_passwords:hash_admin_password(?PASS), ok = config:set("admins", ?USER, ?b2l(Hashed), _Persist=false), - ok = config:set("chttpd", "buffer_response", "true"), + ok = config:set("chttpd", "buffer_response", "true", _Persist=false), TmpDb = ?tempdb(), Addr = config:get("chttpd", "bind_address", "127.0.0.1"), Port = mochiweb_socket_server:get(chttpd, port), diff --git a/src/couch/src/couch_httpd.erl b/src/couch/src/couch_httpd.erl index 8f7fedd5e..67587d3c9 100644 --- a/src/couch/src/couch_httpd.erl +++ b/src/couch/src/couch_httpd.erl @@ -39,6 +39,7 @@ -export([check_max_request_length/1]). -export([handle_request/1]). -export([set_auth_handlers/0]). +-export([initialize_jsonp/1, maybe_add_default_headers/2]). -define(HANDLER_NAME_IN_MODULE_POS, 6). -define(MAX_DRAIN_BYTES, 1048576). |