diff options
-rw-r--r-- | src/cowboy_protocol.erl | 3 | ||||
-rw-r--r-- | src/cowboy_req.erl | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/cowboy_protocol.erl b/src/cowboy_protocol.erl index 8ddd40d..9520667 100644 --- a/src/cowboy_protocol.erl +++ b/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}) -> diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index 8653efe..d074efa 100644 --- a/src/cowboy_req.erl +++ b/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. |