Add send_response_no_cors/4 COUCHDB-2945
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/f58817f5 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/f58817f5 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/f58817f5 Branch: refs/heads/master Commit: f58817f547924f52eef6f01e3b788f3b308a1979 Parents: 9b69868 Author: ILYA Khlopotov <iil...@ca.ibm.com> Authored: Thu Mar 3 07:45:58 2016 -0800 Committer: ILYA Khlopotov <iil...@ca.ibm.com> Committed: Thu Mar 3 11:38:04 2016 -0800 ---------------------------------------------------------------------- src/couch_httpd.erl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/f58817f5/src/couch_httpd.erl ---------------------------------------------------------------------- diff --git a/src/couch_httpd.erl b/src/couch_httpd.erl index 34184a1..c88e2e7 100644 --- a/src/couch_httpd.erl +++ b/src/couch_httpd.erl @@ -26,7 +26,8 @@ -export([start_chunked_response/3,send_chunk/2,log_request/2]). -export([start_response_length/4, start_response/3, send/2]). -export([start_json_response/2, start_json_response/3, end_json_response/1]). --export([send_response/4,send_method_not_allowed/2,send_error/2,send_error/4, send_redirect/2,send_chunked_error/2]). +-export([send_response/4,send_response_no_cors/4,send_method_not_allowed/2, + send_error/2,send_error/4, send_redirect/2,send_chunked_error/2]). -export([send_json/2,send_json/3,send_json/4,last_chunk/1,parse_multipart_request/3]). -export([accepted_encodings/1,handle_request_int/5,validate_referer/1,validate_ctype/2]). -export([http_1_0_keep_alive/2]). @@ -720,7 +721,11 @@ last_chunk(Resp) -> Resp:write_chunk([]), {ok, Resp}. -send_response(#httpd{mochi_req=MochiReq}=Req, Code, Headers, Body) -> +send_response(Req, Code, Headers0, Body) -> + Headers1 = chttpd_cors:headers(Req, Headers0), + send_response_no_cors(Req, Code, Headers1, Body). + +send_response_no_cors(#httpd{mochi_req=MochiReq}=Req, Code, Headers, Body) -> log_request(Req, Code), couch_stats:increment_counter([couchdb, httpd_status_codes, Code]), Headers1 = http_1_0_keep_alive(MochiReq, Headers), @@ -732,9 +737,8 @@ send_response(#httpd{mochi_req=MochiReq}=Req, Code, Headers, Body) -> end, Headers2 = Headers1 ++ server_header() ++ couch_httpd_auth:cookie_auth_header(Req, Headers1), - Headers3 = chttpd_cors:headers(Req, Headers2), - {ok, MochiReq:respond({Code, Headers3, Body})}. + {ok, MochiReq:respond({Code, Headers2, Body})}. send_method_not_allowed(Req, Methods) -> send_error(Req, 405, [{"Allow", Methods}], <<"method_not_allowed">>, ?l2b("Only " ++ Methods ++ " allowed")).