Просмотр исходного кода

Add the private set_bindings/4 function used by cowboy_protocol

Loïc Hoguin 12 лет назад
Родитель
Сommit
c1dd5b5176
2 измененных файлов с 11 добавлено и 3 удалено
  1. 3 3
      src/cowboy_protocol.erl
  2. 8 0
      src/cowboy_req.erl

+ 3 - 3
src/cowboy_protocol.erl

@@ -242,9 +242,9 @@ onrequest(Req, State=#state{onrequest=OnRequest}) ->
 dispatch(Req, State=#state{dispatch=Dispatch,
 		host_tokens=HostTokens, path_tokens=PathTokens}) ->
 	case cowboy_dispatcher:match(HostTokens, PathTokens, Dispatch) of
-		{ok, Handler, Opts, Binds, HostInfo, PathInfo} ->
-			handler_init(Req#http_req{host_info=HostInfo, path_info=PathInfo,
-				bindings=Binds}, State#state{handler={Handler, Opts},
+		{ok, Handler, Opts, Bindings, HostInfo, PathInfo} ->
+			Req2 = cowboy_req:set_bindings(HostInfo, PathInfo, Bindings, Req),
+			handler_init(Req2, State#state{handler={Handler, Opts},
 				host_tokens=undefined, path_tokens=undefined});
 		{error, notfound, host} ->
 			error_terminate(400, State);

+ 8 - 0
src/cowboy_req.erl

@@ -107,6 +107,7 @@
 -export([set_connection/2]).
 -export([add_header/3]).
 -export([set_buffer/2]).
+-export([set_bindings/4]).
 
 %% Misc API.
 -export([compact/1]).
@@ -941,6 +942,13 @@ add_header(Name, Value, Req=#http_req{headers=Headers}) ->
 set_buffer(Buffer, Req) ->
 	Req#http_req{buffer=Buffer}.
 
+%% @private
+-spec set_bindings(cowboy_dispatcher:tokens(), cowboy_dispatcher:tokens(),
+	cowboy_dispatcher:bindings(), Req) -> Req when Req::req().
+set_bindings(HostInfo, PathInfo, Bindings, Req) ->
+	Req#http_req{host_info=HostInfo, path_info=PathInfo,
+		bindings=Bindings}.
+
 %% Misc API.
 
 %% @doc Compact the request data by removing all non-system information.