mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Lazy-retrieve the peer name and port to avoid wasting time each request.
This commit is contained in:
parent
f5e7178651
commit
d69d0adfa7
2 changed files with 4 additions and 2 deletions
|
@ -65,11 +65,10 @@ request({http_request, _Method, _URI, Version}, State)
|
||||||
request({http_request, Method, {abs_path, AbsPath}, Version},
|
request({http_request, Method, {abs_path, AbsPath}, Version},
|
||||||
State=#state{socket=Socket, transport=Transport}) ->
|
State=#state{socket=Socket, transport=Transport}) ->
|
||||||
{Path, RawPath, Qs} = cowboy_dispatcher:split_path(AbsPath),
|
{Path, RawPath, Qs} = cowboy_dispatcher:split_path(AbsPath),
|
||||||
{ok, Peer} = Transport:peername(Socket),
|
|
||||||
ConnAtom = version_to_connection(Version),
|
ConnAtom = version_to_connection(Version),
|
||||||
wait_header(#http_req{socket=Socket, transport=Transport,
|
wait_header(#http_req{socket=Socket, transport=Transport,
|
||||||
connection=ConnAtom, method=Method, version=Version,
|
connection=ConnAtom, method=Method, version=Version,
|
||||||
peer=Peer, path=Path, raw_path=RawPath, raw_qs=Qs}, State);
|
path=Path, raw_path=RawPath, raw_qs=Qs}, State);
|
||||||
request({http_request, Method, '*', Version},
|
request({http_request, Method, '*', Version},
|
||||||
State=#state{socket=Socket, transport=Transport}) ->
|
State=#state{socket=Socket, transport=Transport}) ->
|
||||||
{ok, Peer} = Transport:peername(Socket),
|
{ok, Peer} = Transport:peername(Socket),
|
||||||
|
|
|
@ -44,6 +44,9 @@ version(Req) ->
|
||||||
|
|
||||||
-spec peer(Req::#http_req{})
|
-spec peer(Req::#http_req{})
|
||||||
-> {{Address::ip_address(), Port::port_number()}, Req::#http_req{}}.
|
-> {{Address::ip_address(), Port::port_number()}, Req::#http_req{}}.
|
||||||
|
peer(Req=#http_req{socket=Socket, transport=Transport, peer=undefined}) ->
|
||||||
|
{ok, Peer} = Transport:peername(Socket),
|
||||||
|
{Peer, Req#http_req{peer=Peer}};
|
||||||
peer(Req) ->
|
peer(Req) ->
|
||||||
{Req#http_req.peer, Req}.
|
{Req#http_req.peer, Req}.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue