summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/couchdb/couch_db.hrl4
-rw-r--r--src/couchdb/couch_httpd.erl4
-rw-r--r--src/couchdb/couch_httpd_rewrite.erl19
3 files changed, 13 insertions, 14 deletions
diff --git a/src/couchdb/couch_db.hrl b/src/couchdb/couch_db.hrl
index 47e8f9eb..f74bade7 100644
--- a/src/couchdb/couch_db.hrl
+++ b/src/couchdb/couch_db.hrl
@@ -73,7 +73,9 @@
user_ctx,
req_body = undefined,
design_url_handlers,
- auth
+ auth,
+ default_fun,
+ url_handlers
}).
diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl
index 6d0230f9..62616007 100644
--- a/src/couchdb/couch_httpd.erl
+++ b/src/couchdb/couch_httpd.erl
@@ -175,7 +175,9 @@ handle_request(MochiReq, DefaultFun,
path_parts = [list_to_binary(couch_httpd:unquote(Part))
|| Part <- string:tokens(Path, "/")],
db_url_handlers = DbUrlHandlers,
- design_url_handlers = DesignUrlHandlers
+ design_url_handlers = DesignUrlHandlers,
+ default_fun = DefaultFun,
+ url_handlers = UrlHandlers
},
HandlerFun = couch_util:dict_find(HandlerKey, UrlHandlers, DefaultFun),
diff --git a/src/couchdb/couch_httpd_rewrite.erl b/src/couchdb/couch_httpd_rewrite.erl
index eabe98df..72ec9545 100644
--- a/src/couchdb/couch_httpd_rewrite.erl
+++ b/src/couchdb/couch_httpd_rewrite.erl
@@ -172,20 +172,15 @@ handle_rewrite_req(#httpd{
% cleanup, It force mochiweb to reparse raw uri.
MochiReq1:cleanup(),
- DefaultSpec = "{couch_httpd_db, handle_request}",
- DefaultFun = couch_httpd:make_arity_1_fun(
- couch_config:get("httpd", "default_handler", DefaultSpec)
- ),
-
- UrlHandlersList = lists:map(
- fun({UrlKey, SpecStr}) ->
- {?l2b(UrlKey), couch_httpd:make_arity_1_fun(SpecStr)}
- end, couch_config:get("httpd_global_handlers")),
- UrlHandlers = dict:from_list(UrlHandlersList),
+ #httpd{
+ db_url_handlers = DbUrlHandlers,
+ design_url_handlers = DesignUrlHandlers,
+ default_fun = DefaultFun,
+ url_handlers = UrlHandlers
+ } = Req,
couch_httpd:handle_request(MochiReq1, DefaultFun,
- UrlHandlers, Req#httpd.db_url_handlers,
- Req#httpd.design_url_handlers)
+ UrlHandlers, DbUrlHandlers, DesignUrlHandlers)
end.