"Be liberal in what you accept, and conservative in what you send."
Sadly (to my perspective), this is definitely not the philosophy of Mongrel, and the mongrel development 'community' (does it exist?) is not partial to it.
I've run into other malformed HTTP requests in other circumstances, and the solution I ended up with was using Apache rewrite maps to "fix" those malformed requests before they even get to mongrel. I'm not sure if that solution would work for this particular error, but sounds like you've found another one.
I wouldn't hold my breath for that patch to be incorporated in mongrel though, the mongrel philosophy seems to be to be conservative in what it accepts.
Jonathan Dido Sevilla wrote:
I've been using Mongrel for a while to write bare HTTP servlets as a replacement for webrick and encountered an HTTP client using the servlet that for some reason occasionally embeds carriage return characters ('\r', 0x0d) inside the value fields of message headers. Mongrel doesn't like that, and aborts the request with a parse error. I'm not sure if this is strictly permitted by RFC 2616, but at any rate, changing Mongrel to accept these kinds of HTTP headers was a single character change in the Ragel parser, viz.: *** START OF PATCH *** Index: http11_parser_common.rl =================================================================== --- http11_parser_common.rl (revision 1037) +++ http11_parser_common.rl (working copy) @@ -46,7 +46,7 @@ field_value = any* >start_value %write_value; - message_header = field_name ":" " "* field_value :> CRLF; + message_header = field_name ":" " "* field_value :>> CRLF; Request = Request_Line ( message_header )* ( CRLF @done ); *** END OF PATCH *** All that was necessary was to simply change the regular expression in the Ragel parser to use a finish-guarded concatenation operator instead of an entry-guarded one as in the original. From a cursory reading of RFC 2616 I don't see that a carriage return character there should be illegal, but as Jon Postel was once quoted as saying: "Be liberal in what you accept, and conservative in what you send."
_______________________________________________ Mongrel-users mailing list Mongrel-users@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-users