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/11/11 20:32:04 UTC
[4/5] git commit: simplify `preflight_request()`
simplify `preflight_request()`
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/f75b1b5c
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/f75b1b5c
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/f75b1b5c
Branch: refs/heads/431-feature_cors
Commit: f75b1b5c4f867c7b4a8f01cc2ba6dd21184bb764
Parents: bb6a80a
Author: Jan Lehnardt <ja...@apache.org>
Authored: Sun Nov 11 15:56:22 2012 +0000
Committer: Jan Lehnardt <ja...@apache.org>
Committed: Sun Nov 11 20:32:02 2012 +0100
----------------------------------------------------------------------
src/couchdb/couch_httpd_cors.erl | 42 ++++++++++++++++++---------------
1 files changed, 23 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/f75b1b5c/src/couchdb/couch_httpd_cors.erl
----------------------------------------------------------------------
diff --git a/src/couchdb/couch_httpd_cors.erl b/src/couchdb/couch_httpd_cors.erl
index 90a7543..7e45c96 100644
--- a/src/couchdb/couch_httpd_cors.erl
+++ b/src/couchdb/couch_httpd_cors.erl
@@ -85,30 +85,34 @@ make_cors_header(Origin, Host) ->
maybe_add_credentials(Origin, Host, Headers).
preflight_request(MochiReq) ->
+ Origin = MochiReq:get_header_value("Origin"),
+ preflight_request(MochiReq, Origin).
+
+preflight_request(MochiReq, undefined) ->
+ MochiReq;
+preflight_request(MochiReq, Origin) ->
Host = couch_httpd_vhost:host(MochiReq),
- case MochiReq:get_header_value("Origin") of
- undefined ->
- MochiReq;
+ AcceptedOrigins = get_accepted_origins(Host),
+ AcceptAll = lists:member("*", AcceptedOrigins),
- Origin ->
- AcceptedOrigins = get_accepted_origins(Host),
- AcceptAll = lists:member("*", AcceptedOrigins),
-
- case {AcceptAll, AcceptedOrigins} of
- {true, _} ->
- handle_preflight_request(couch_util:to_list(Origin),
- Host, MochiReq);
- {false, _} ->
- case lists:member(Origin, AcceptedOrigins) of
- true ->
- handle_preflight_request(couch_util:to_list(Origin),
- Host, MochiReq);
- false ->
- false
- end
+ HandlerFun = fun() ->
+ OriginList = couch_util:to_list(Origin),
+ handle_preflight_request(OriginList, Host, MochiReq)
+ end,
+
+ case AcceptAll of
+ true ->
+ HandlerFun();
+ false ->
+ case lists:member(Origin, AcceptedOrigins) of
+ true ->
+ HandlerFun();
+ false ->
+ false
end
end.
+
handle_preflight_request(Origin, Host, MochiReq) ->
%% get supported methods
SupportedMethods = split_list(cors_config(Host, "methods",