Browse Source

Add the private add_header/3 function used by cowboy_protocol

Loïc Hoguin 12 years ago
parent
commit
fc02b7f767
2 changed files with 8 additions and 2 deletions
  1. 1 2
      src/cowboy_protocol.erl
  2. 7 0
      src/cowboy_req.erl

+ 1 - 2
src/cowboy_protocol.erl

@@ -205,8 +205,7 @@ header({http_header, _I, 'Connection', _R, Connection}, Req,
 	parse_header(cowboy_req:set_connection(Connection, Req), State);
 header({http_header, _I, Field, _R, Value}, Req, State) ->
 	Field2 = format_header(Field),
-	parse_header(Req#http_req{headers=[{Field2, Value}|Req#http_req.headers]},
-		State);
+	parse_header(cowboy_req:add_header(Field2, Value, Req), State);
 %% The Host header is required in HTTP/1.1 and optional in HTTP/1.0.
 header(http_eoh, Req, State=#state{host_tokens=undefined,
 		buffer=Buffer, transport=Transport}) ->

+ 7 - 0
src/cowboy_req.erl

@@ -105,6 +105,7 @@
 %% Private setter/getter API.
 -export([set_host/4]).
 -export([set_connection/2]).
+-export([add_header/3]).
 
 %% Misc API.
 -export([compact/1]).
@@ -928,6 +929,12 @@ set_connection(RawConnection, Req=#http_req{headers=Headers}) ->
 	ConnAtom = cowboy_http:connection_to_atom(ConnTokens),
 	Req3#http_req{connection=ConnAtom}.
 
+%% @private
+-spec add_header(cowboy_http:header(), binary(), Req)
+	-> Req when Req::req().
+add_header(Name, Value, Req=#http_req{headers=Headers}) ->
+	Req#http_req{headers=[{Name, Value}|Headers]}.
+
 %% Misc API.
 
 %% @doc Compact the request data by removing all non-system information.