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:24:31 UTC

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

Updated Branches:
  refs/heads/431-feature-cors [created] 89443d0fb


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/89443d0f
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/89443d0f
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/89443d0f

Branch: refs/heads/431-feature-cors
Commit: 89443d0fbee1630232e43df68ca9385ce45ebf4d
Parents: 3f4a4e1
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 16:19:03 2012 +0000

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


http://git-wip-us.apache.org/repos/asf/couchdb/blob/89443d0f/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)).