summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2020-09-10 13:38:48 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2020-09-10 13:38:48 -0500
commite03d171b14450fd06c55b5668b380dad53ffa75a (patch)
tree29224670e621d2406fb176e3dd4f5b39a624a6e6
parentd18b84768280e8e5584bc7b00b6e1194c13321e6 (diff)
downloadcouchdb-prototype/fdb-layer-final-final-merge.tar.gz
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.erl4
-rw-r--r--src/chttpd/test/eunit/chttpd_delayed_test.erl2
-rw-r--r--src/couch/src/couch_httpd.erl1
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).