0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00

Merge branch 'onrequest' of git://github.com/saleyn/cowboy

This commit is contained in:
Loïc Hoguin 2012-11-27 17:11:23 +01:00
commit 610f9e8d43

View file

@ -440,19 +440,19 @@ request(Buffer, State=#state{socket=Socket, transport=Transport,
Req = cowboy_req:new(Socket, Transport, Method, Path, Query, Fragment, Req = cowboy_req:new(Socket, Transport, Method, Path, Query, Fragment,
Version, Headers, Host, Port, Buffer, ReqKeepalive < MaxKeepalive, Version, Headers, Host, Port, Buffer, ReqKeepalive < MaxKeepalive,
OnResponse), OnResponse),
onrequest(Req, State, Host, Path). onrequest(Req, State, Host).
%% Call the global onrequest callback. The callback can send a reply, %% Call the global onrequest callback. The callback can send a reply,
%% in which case we consider the request handled and move on to the next %% in which case we consider the request handled and move on to the next
%% one. Note that since we haven't dispatched yet, we don't know the %% one. Note that since we haven't dispatched yet, we don't know the
%% handler, host_info, path_info or bindings yet. %% handler, host_info, path_info or bindings yet.
-spec onrequest(cowboy_req:req(), #state{}, binary(), binary()) -> ok. -spec onrequest(cowboy_req:req(), #state{}, binary()) -> ok.
onrequest(Req, State=#state{onrequest=undefined}, Host, Path) -> onrequest(Req, State=#state{onrequest=undefined}, Host) ->
dispatch(Req, State, Host, Path); dispatch(Req, State, Host, cowboy_req:get(path, Req));
onrequest(Req, State=#state{onrequest=OnRequest}, Host, Path) -> onrequest(Req, State=#state{onrequest=OnRequest}, Host) ->
Req2 = OnRequest(Req), Req2 = OnRequest(Req),
case cowboy_req:get(resp_state, Req2) of case cowboy_req:get(resp_state, Req2) of
waiting -> dispatch(Req2, State, Host, Path); waiting -> dispatch(Req2, State, Host, cowboy_req:get(path, Req2));
_ -> next_request(Req2, State, ok) _ -> next_request(Req2, State, ok)
end. end.