Browse Source

Ignore empty lines when expecting the Request-Line.

In the interest of robustness, servers SHOULD ignore any empty
line(s) received where a Request-Line is expected.  In other words,
if the server is reading the protocol stream at the beginning of a
message and receives a CRLF first, it should ignore the CRLF.
Loïc Hoguin 14 years ago
parent
commit
c9eb3ce5fc
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/cowboy_http_protocol.erl

+ 3 - 1
src/cowboy_http_protocol.erl

@@ -67,7 +67,9 @@ request({http_request, Method, {abs_path, AbsPath}, Version},
 	{Path, Qs} = cowboy_dispatcher:split_path(AbsPath),
 	{ok, Peer} = Transport:peername(Socket),
 	wait_header(#http_req{socket=Socket, transport=Transport, method=Method,
-		version=Version, peer=Peer, path=Path, raw_qs=Qs}, State).
+		version=Version, peer=Peer, path=Path, raw_qs=Qs}, State);
+request({http_error, "\r\n"}, State) ->
+	wait_request(State).
 
 -spec wait_header(Req::#http_req{}, State::#state{}) -> ok.
 %% @todo We don't want to wait T at each header...