Return-Path: Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: (qmail 95810 invoked from network); 3 Feb 2010 16:30:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Feb 2010 16:30:31 -0000 Received: (qmail 72145 invoked by uid 500); 3 Feb 2010 16:30:31 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 72095 invoked by uid 500); 3 Feb 2010 16:30:30 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 72086 invoked by uid 99); 3 Feb 2010 16:30:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 16:30:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 16:30:29 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 145B323889EC; Wed, 3 Feb 2010 16:30:09 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r906111 - in /couchdb/trunk/src/couchdb: couch_db.hrl couch_httpd.erl couch_httpd_rewrite.erl Date: Wed, 03 Feb 2010 16:30:08 -0000 To: commits@couchdb.apache.org From: benoitc@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100203163009.145B323889EC@eris.apache.org> Author: benoitc Date: Wed Feb 3 16:30:08 2010 New Revision: 906111 URL: http://svn.apache.org/viewvc?rev=906111&view=rev Log: add default_fun and url_handlers to #http. It's useful for any custom handler that need to use the http_handler and not only the db and design http handlers. Like for example in the rewriter. Modified: couchdb/trunk/src/couchdb/couch_db.hrl couchdb/trunk/src/couchdb/couch_httpd.erl couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl Modified: couchdb/trunk/src/couchdb/couch_db.hrl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_db.hrl?rev=906111&r1=906110&r2=906111&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_db.hrl (original) +++ couchdb/trunk/src/couchdb/couch_db.hrl Wed Feb 3 16:30:08 2010 @@ -73,7 +73,9 @@ user_ctx, req_body = undefined, design_url_handlers, - auth + auth, + default_fun, + url_handlers }). Modified: couchdb/trunk/src/couchdb/couch_httpd.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd.erl?rev=906111&r1=906110&r2=906111&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_httpd.erl (original) +++ couchdb/trunk/src/couchdb/couch_httpd.erl Wed Feb 3 16:30:08 2010 @@ -175,7 +175,9 @@ 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), Modified: couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl?rev=906111&r1=906110&r2=906111&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl (original) +++ couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl Wed Feb 3 16:30:08 2010 @@ -172,20 +172,15 @@ % 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.