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

[5/5] git commit: reorder functions by exported function they support

reorder functions by exported function they support


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/bcdac76c
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/bcdac76c
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/bcdac76c

Branch: refs/heads/431-feature_cors
Commit: bcdac76ca5a71898054a8a9b3b1c05af5892cdd3
Parents: 31a8268
Author: Jan Lehnardt <ja...@apache.org>
Authored: Sun Nov 11 16:19:03 2012 +0000
Committer: Jan Lehnardt <ja...@apache.org>
Committed: Sun Nov 11 20:32:02 2012 +0100

----------------------------------------------------------------------
 src/couchdb/couch_httpd_cors.erl |   77 ++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/bcdac76c/src/couchdb/couch_httpd_cors.erl
----------------------------------------------------------------------
diff --git a/src/couchdb/couch_httpd_cors.erl b/src/couchdb/couch_httpd_cors.erl
index 14b93f4..053adf0 100644
--- a/src/couchdb/couch_httpd_cors.erl
+++ b/src/couchdb/couch_httpd_cors.erl
@@ -33,6 +33,8 @@
 % TODO: - pick a sane default
 -define(CORS_DEFAULT_MAX_AGE, 12345).
 
+%% is_preflight_request/1
+
 is_preflight_request(#httpd{method=Method}=Req) when Method /= 'OPTIONS' ->
     Req;
 is_preflight_request(Req) ->
@@ -49,40 +51,6 @@ is_preflight_request(#httpd{mochi_req=MochiReq}=Req, true) ->
         Req
     end.
 
-cors_headers(MochiReq) ->
-    EnableCors = enable_cors(),
-    cors_headers(MochiReq, EnableCors).
-
-cors_headers(#httpd{mochi_req=MochiReq}, true) ->
-    Host = couch_httpd_vhost:host(MochiReq),
-    AcceptedOrigins = get_accepted_origins(Host),
-    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, []) ->
-    [];
-handle_cors_headers(Origin, Host, AcceptedOrigins) ->
-    AcceptAll = lists:member("*", AcceptedOrigins),
-    case {AcceptAll, lists:member(Origin, AcceptedOrigins)} of
-    {true, _} ->
-        make_cors_header(Origin, Host);
-    {false, true}  ->
-        make_cors_header(Origin, Host);
-    _ ->
-        []
-    end.
-
-
-make_cors_header(Origin, Host) ->
-    Headers = [{"Access-Control-Allow-Origin", Origin}],
-    maybe_add_credentials(Origin, Host, Headers).
 
 preflight_request(MochiReq) ->
     Origin = MochiReq:get_header_value("Origin"),
@@ -193,6 +161,47 @@ credentials(_Origin, Host) ->
     get_bool_config(cors_section(Host), "credentials", Default).
 
 
+% cors_headers/1
+
+cors_headers(MochiReq) ->
+    EnableCors = enable_cors(),
+    cors_headers(MochiReq, EnableCors).
+
+cors_headers(#httpd{mochi_req=MochiReq}, true) ->
+    Host = couch_httpd_vhost:host(MochiReq),
+    AcceptedOrigins = get_accepted_origins(Host),
+    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, []) ->
+    [];
+handle_cors_headers(Origin, Host, AcceptedOrigins) ->
+    AcceptAll = lists:member("*", AcceptedOrigins),
+    case {AcceptAll, lists:member(Origin, AcceptedOrigins)} of
+    {true, _} ->
+        make_cors_header(Origin, Host);
+    {false, true}  ->
+        make_cors_header(Origin, Host);
+    _ ->
+        []
+    end.
+
+
+make_cors_header(Origin, Host) ->
+    Headers = [{"Access-Control-Allow-Origin", Origin}],
+    maybe_add_credentials(Origin, Host, Headers).
+
+
+%% util
+
 cors_config(Host, Key, Default) ->
     couch_config:get(cors_section(Host), Key,
                      couch_config:get("cors", Key, Default)).