Skip to content

Commit

Permalink
Default the connection to keep-alive on HTTP/1.1 and close on 1.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
Loïc Hoguin committed Mar 19, 2011
1 parent 896b854 commit 6fad3f7
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions src/cowboy_http_protocol.erl
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,17 @@ request({http_request, Method, {abs_path, AbsPath}, Version},
State=#state{socket=Socket, transport=Transport}) ->
{Path, RawPath, 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_path=RawPath, raw_qs=Qs},
State);
ConnAtom = version_to_connection(Version),
wait_header(#http_req{socket=Socket, transport=Transport,
connection=ConnAtom, method=Method, version=Version,
peer=Peer, path=Path, raw_path=RawPath, raw_qs=Qs}, State);
request({http_request, Method, '*', Version},
State=#state{socket=Socket, transport=Transport}) ->
{ok, Peer} = Transport:peername(Socket),
wait_header(#http_req{socket=Socket, transport=Transport, method=Method,
version=Version, peer=Peer, path='*', raw_path="*", raw_qs=[]}, State);
ConnAtom = version_to_connection(Version),
wait_header(#http_req{socket=Socket, transport=Transport,
connection=ConnAtom, method=Method, version=Version,
peer=Peer, path='*', raw_path="*", raw_qs=[]}, State);
request({http_request, _Method, _URI, _Version}, State) ->
error_terminate(501, State);
request({http_error, "\r\n"}, State) ->
Expand Down Expand Up @@ -180,6 +183,10 @@ next_request(State=#state{connection=close}) ->

%% Internal.

-spec version_to_connection(Version::http_version()) -> keepalive | close.
version_to_connection({1, 1}) -> keepalive;
version_to_connection(_Any) -> close.

-spec connection_to_atom(Connection::string()) -> keepalive | close.
connection_to_atom(Connection) ->
case string:to_lower(Connection) of
Expand Down

0 comments on commit 6fad3f7

Please sign in to comment.