Hi Alvaro, thanks for looking into this.

It seems that the problematic behaviour I'm describing is due to
'pathinfo' support :)

So, in your second example; "curl
http://localhost:9999/1/2/test/this/is/pathinfo";, results in 'This a
test'. Why doesn't cherokee send a 404 in this case? Is this standard
behaviour? I'm not sure if bzr is relying on undefined behaviour here
I do know that this works with apache and lighttpd.

When branching via http, bzr looks for
''http://example.com/repo/.bzr/checkout/format'. If the 'checkout'
directory does not exist (i.e. bzr gets a 404), bzr should not fail it
just behaves slightly differently. With cherokee, if the 'checkout'
directory does not exist, it serves 'http://example.com/repo/.bzr/'
instead of sending a 404, and this breaks bzr.

I hope I've been a little clearer this time:)

Eoin


On 10/30/07, Alvaro Lopez Ortega <[EMAIL PROTECTED]> wrote:
> Eoin Hennessy wrote, On 25/10/2007 09:26:
>
>  > The cherokee bug tracker [0] seems to be misbehaving, so in it's
>  > absence:
>
> We had so many problem with the spammers that I had to take it down
> "temporarily". A few days latter we discussed whether it was worth
> spending time on maintaining our infrastructure or if was more
> convenient for us to simply outsource it somewhere and relay all that
> messy stuff on them.
>
> I suppose that it is time to redirect the old BTS to the one that we
> created on Google code. It was not more than a test, but it has worked
> fairly well so far: http://code.google.com/p/cherokee
>
>  > I recently looked at serving bazaar-ng branches via http with cherokee
>  > (using the 'common' handler). I noticed that cloning any branches via
>  > http was failing. When branching via http, bzr bases its behaviour on
>  > the presence of certain files in it's control directory (e.g.
>  > .bzr/checkout/format). It seems that cherokee doesn't send a 404 in
>  > the absence of these files, redirecting instead to the root directory,
>  > breaking bzr.
>  >
>  > I've verfied this behaviour is present in 0.5.6 and trunk. I've
>  > attached a small patch (against trunk) for common_handler.c that just
>  > emits a 'http_not_found' error code instead of redirecting when a
>  > file/dir is absent. This allows bzr to operate as expected.
>
> There is something I don't quite understand. Check this out:
>
> ==========
> $ cat >/tmp/common.conf <<FIN
> server!port = 9999
> vserver!default!document_root = /tmp
> vserver!default!directory!/!handler = common
> FIN
>
> $ mkdir -p /tmp/1/2/3
> $ ./cherokee -C /tmp/common.conf &
>
> $ curl http://localhost:9999/1/2/no -D -
> HTTP/1.1 404 Not Found
> Connection: close
> Date: Tue, 30 Oct 2007 00:03:28 GMT-4
> Server: Cherokee/0.6.0b933 (UNIX)
> Content-Type: text/html
> Content-Length: 260
> Cache-Control: no-cache
> Pragma: no-cache
> P3P: CP=3DNOI NID CURa OUR NOR UNI
> ==========
>
> In fact, it does also handle requests with pathinfo:
>
> ==========
> $ echo "This a test" > /tmp/1/2/test
>
> $ curl http://localhost:9999/1/2/test
> This a test
>
> $ curl http://localhost:9999/1/2/test/this/is/pathinfo
> This a test
>
> $ curl http://localhost:9999/1/2/test.no -D - | grep HTTP
> HTTP/1.1 404 Not Found
> ==========
>
>  > Perhaps redirection behaviour like this should be left to the user
>  > to configure?
>
> Everything seems to be working fine on my side. As far as I have seen,
> your patch would break the pathinfo support. Actually, I could not
> reproduce the problem that you described so I might have taken it
> wrong. Could you please clarify it?
>
> Thanks Eoin!! :-)
>
> --
> Greetings, alo.
> http://www.alobbs.com
>
>
_______________________________________________
Cherokee mailing list
[email protected]
http://cherokee-project.com/cgi-bin/mailman/listinfo/cherokee

Reply via email to