[Catalyst-commits] r9021 - in Catalyst-Runtime/5.70/trunk: . lib/Catalyst/Engine

andyg at dev.catalyst.perl.org andyg at dev.catalyst.perl.org
Tue Jan 6 19:42:41 GMT 2009


Author: andyg
Date: 2009-01-06 19:42:41 +0000 (Tue, 06 Jan 2009)
New Revision: 9021

Modified:
   Catalyst-Runtime/5.70/trunk/Changes
   Catalyst-Runtime/5.70/trunk/lib/Catalyst/Engine/HTTP.pm
Log:
Handle leading CRLF in HTTP requests sometimes sent by IE6 in keep-alive requests

Modified: Catalyst-Runtime/5.70/trunk/Changes
===================================================================
--- Catalyst-Runtime/5.70/trunk/Changes	2009-01-06 17:41:53 UTC (rev 9020)
+++ Catalyst-Runtime/5.70/trunk/Changes	2009-01-06 19:42:41 UTC (rev 9021)
@@ -8,6 +8,7 @@
         - Fix some Win32 test failures
         - Add pt translation of error message (wreis)
         - Make :Chained('../action') work (Florian Ragwitz)
+        - Handle leading CRLF in HTTP requests sometimes sent by IE6 in keep-alive requests.
 
 5.7099_03 2008-07-20 10:10:00
         - Fix regressions for regexp fallback in model(), view() and controller()

Modified: Catalyst-Runtime/5.70/trunk/lib/Catalyst/Engine/HTTP.pm
===================================================================
--- Catalyst-Runtime/5.70/trunk/lib/Catalyst/Engine/HTTP.pm	2009-01-06 17:41:53 UTC (rev 9020)
+++ Catalyst-Runtime/5.70/trunk/lib/Catalyst/Engine/HTTP.pm	2009-01-06 19:42:41 UTC (rev 9021)
@@ -443,7 +443,8 @@
     my $self = shift;
 
     # Parse request line    
-    if ( $self->{inputbuf} !~ s/^(\w+)[ \t]+(\S+)(?:[ \t]+(HTTP\/\d+\.\d+))?[^\012]*\012// ) {
+    # Leading CRLF sometimes sent by buggy IE versions
+    if ( $self->{inputbuf} !~ s/^(?:\x0D\x0A)?(\w+)[ \t]+(\S+)(?:[ \t]+(HTTP\/\d+\.\d+))?[^\012]*\012// ) {
         return ();
     }
     




More information about the Catalyst-commits mailing list