Просмотр исходного кода

Add the private set_buffer/2 function used by cowboy_protocol

Loïc Hoguin 12 лет назад
Родитель
Сommit
5b56dd780b
2 измененных файлов с 10 добавлено и 2 удалено
  1. 4 2
      src/cowboy_protocol.erl
  2. 6 0
      src/cowboy_req.erl

+ 4 - 2
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).
 

+ 6 - 0
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.