You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2012/12/04 21:43:49 UTC
[22/44] git commit: refactor cors_headers() for clarity
refactor cors_headers() for clarity
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/e8b53346
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/e8b53346
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/e8b53346
Branch: refs/heads/1368-fix-multipart-header-parts
Commit: e8b53346ee13662bb214267ee128fa6f4993cc82
Parents: f976cfe
Author: Jan Lehnardt <ja...@apache.org>
Authored: Thu Nov 8 22:22:41 2012 +0100
Committer: Jan Lehnardt <ja...@apache.org>
Committed: Thu Nov 8 23:37:34 2012 +0100
----------------------------------------------------------------------
src/couchdb/couch_httpd_cors.erl | 34 ++++++++++++++++++--------------
1 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/e8b53346/src/couchdb/couch_httpd_cors.erl
----------------------------------------------------------------------
diff --git a/src/couchdb/couch_httpd_cors.erl b/src/couchdb/couch_httpd_cors.erl
index a783ae6..2a391ae 100644
--- a/src/couchdb/couch_httpd_cors.erl
+++ b/src/couchdb/couch_httpd_cors.erl
@@ -33,7 +33,7 @@
is_preflight_request(#httpd{method=Method}=Req) when Method /= 'OPTIONS' ->
Req;
is_preflight_request(Req) ->
- EnableCors = get_bool_config("httpd", "enable_cors", false),
+ EnableCors = enable_cors(),
is_preflight_request(Req, EnableCors).
is_preflight_request(Req, false) ->
@@ -46,21 +46,22 @@ is_preflight_request(#httpd{mochi_req=MochiReq}=Req, true) ->
Req
end.
-cors_headers(#httpd{mochi_req=MochiReq}) ->
+cors_headers(MochiReq) ->
+ EnableCors = enable_cors(),
+ cors_headers(MochiReq, EnableCors).
+
+cors_headers(#httpd{mochi_req=MochiReq}, true) ->
Host = couch_httpd_vhost:host(MochiReq),
- case get_bool_config("httpd", "enable_cors", false) of
- true ->
- AcceptedOrigins = split_list(cors_config(Host, "origins", [])),
- case MochiReq:get_header_value("Origin") of
- undefined ->
- [];
- Origin ->
- handle_cors_headers(couch_util:to_list(Origin),
- Host, AcceptedOrigins)
- end;
- false ->
- []
- end.
+ AcceptedOrigins = split_list(cors_config(Host, "origins", [])),
+ case MochiReq:get_header_value("Origin") of
+ undefined ->
+ [];
+ Origin ->
+ handle_cors_headers(couch_util:to_list(Origin),
+ Host, AcceptedOrigins)
+ end;
+cors_headers(_MochiReq, false) ->
+ [].
handle_cors_headers(_Origin, _Host, []) ->
[];
@@ -199,6 +200,9 @@ cors_section(Host0) ->
{Host, _Port} = split_host_port(Host0),
"cors:" ++ Host.
+enable_cors() ->
+ get_bool_config("httpd", "enable_cors", false).
+
get_bool_config(Section, Key, Default) ->
case couch_config:get(Section, Key) of
undefined ->