diff options
-rw-r--r-- | src/cowboy_protocol.erl | 6 | ||||
-rw-r--r-- | src/cowboy_req.erl | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/cowboy_protocol.erl b/src/cowboy_protocol.erl index 9520667..bcbdf57 100644 --- a/src/cowboy_protocol.erl +++ b/src/cowboy_protocol.erl @@ -214,11 +214,13 @@ header(http_eoh, Req, State=#state{host_tokens=undefined, error_terminate(400, State); {{1, 0}, Req2} -> Port = default_port(Transport:name()), - onrequest(Req2#http_req{host= <<>>, port=Port, buffer=Buffer}, + onrequest( + cowboy_req:set_buffer(Buffer, + cowboy_req:set_host(<<>>, Port, <<>>, Req2)), State#state{buffer= <<>>, host_tokens=[]}) end; header(http_eoh, Req, State=#state{buffer=Buffer}) -> - onrequest(Req#http_req{buffer=Buffer}, State#state{buffer= <<>>}); + onrequest(cowboy_req:set_buffer(Buffer, Req), State#state{buffer= <<>>}); header(_Any, _Req, State) -> error_terminate(400, State). diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index d074efa..aad6a97 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -106,6 +106,7 @@ -export([set_host/4]). -export([set_connection/2]). -export([add_header/3]). +-export([set_buffer/2]). %% Misc API. -export([compact/1]). @@ -935,6 +936,11 @@ set_connection(RawConnection, Req=#http_req{headers=Headers}) -> add_header(Name, Value, Req=#http_req{headers=Headers}) -> Req#http_req{headers=[{Name, Value}|Headers]}. +%% @private +-spec set_buffer(binary(), Req) -> Req when Req::req(). +set_buffer(Buffer, Req) -> + Req#http_req{buffer=Buffer}. + %% Misc API. %% @doc Compact the request data by removing all non-system information. |