On 1/7/09, Jonathan Rochkind <rochk...@jhu.edu> wrote:
> Yes. I have run into this before. Mongrel will error on an invalid HTTP URI,
> with one common case being characters not properly escaped, which is what
> your example is.  When one of the developers of my app brought this up
> before, he was told by the Mongrel developer that this was intentional, and
> would not be changed.

Mongrel's HTTP parser grammar was written by Zed to be very RFC conformant.

>  I didn't like this then, and I don't like it now, for a variety of reasons,
> including that my app needs to respond to URLs sent by third parties that
> are not under my control.   Perhaps the current mongrel developers (IS there
> even any active development on mongrel?) have a different opinion, and this
> could be changed, or made configurable.

The mongrel HTTP parser is very stable, and is in use by multiple
projects.  I can't speak for the other mongrel devs, but if it were up
to me alone, I'd keep mongrel's HTTP parser RFC compliant.

Since you have a special case, I would suggest that you just take a
look at the grammar for the parser and consider compiling your own
parser.  You could probably just remove '%' from the unsafe type, and
see if that will work for you:  It looks like this:

 unsafe = (CTL | " " | "\"" | "#" | "%" | "<" | ">");


Kirk Haines
_______________________________________________
Mongrel-users mailing list
Mongrel-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to