Hey Chris, I guess there was a race condition while you processed Benoit's and my patch in parallel.
Cheers, Klaus On Mon, 2010-08-16 at 13:17 -0400, Chris Anderson (JIRA) wrote: > [ > https://issues.apache.org/jira/browse/COUCHDB-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12898993#action_12898993 > ] > > Chris Anderson commented on COUCHDB-855: > ---------------------------------------- > > patch looks great! thanks so much. only change I'd suggest is removing this > change: > > basicView : { > map : stringFun(function(doc) { > - emit(doc.integer, doc.string); > + if (doc.integer && doc.string) > + emit(doc.integer, doc.string); > }) > }, > withReduce : { > map : stringFun(function(doc) { > - emit(doc.integer, doc.string); > + if (doc.integer && doc.string) > + emit(doc.integer, doc.string); > }), > > > I know these guard conditions are good practice, but in real life there are > lots of "bad" views out there, so we should ensure the tests pass even > without the guards. > > > New host manager > > ---------------- > > > > Key: COUCHDB-855 > > URL: https://issues.apache.org/jira/browse/COUCHDB-855 > > Project: CouchDB > > Issue Type: Improvement > > Affects Versions: 1.1 > > Reporter: Benoit Chesneau > > Assignee: Benoit Chesneau > > Fix For: 1.1 > > > > Attachments: > > 0001-New-vhost-manager.-allows-dynamic-add-of-vhosts-with.patch > > > > > > New vhost manager. allows dynamic add of vhosts without restart, wildcard > > in vhost and specific functions in erlang by kind of domain. It also fix > > issue in etap test (160) . > > Find attached to this ticket the patch. It is also available in my github > > repo : > > http://github.com/benoitc/couchdb/commit/435c756cc6e687886cc7055302963f422cf0e161 > > more details : > > This gen_server keep state of vhosts added to the ini and try to > > match the Host header (or forwarded) against rules built against > > vhost list. > > Declaration of vhosts take place in the configuration file : > > [vhosts] > > example.com = /example > > *.example.com = /example > > The first line will rewrite the rquest to display the content of the > > example database. This rule works only if the Host header is > > 'example.com' and won't work for CNAMEs. Second rule on the other hand > > match all CNAMES to example db. So www.example.com or db.example.com > > will work. > > The wildcard ('*') should always be the last in the cnames: > > "*.db.example.com = /" will match all cname on top of db > > examples to the root of the machine. (for now no rewriting is > > possible). > > By default vhosts redirection is handle by the function > > couch_httpd_vhost:redirect_to_vhost, but you could pass per vhost a > > specific function : > > "*.domain.com" = {Module, Func}" > > The function take the Mochiweb Request object and should return a new > > Mochiweb Request object. > > You could also change the default function to handle request by > > changing the setting `redirect_vhost_handler` in `httpd` section of > > the Ini: > > [httpd] > > redirect_vhost_handler = {Module, Fun} > > The function take 2 args : the mochiweb request object and the target > > path. >
