Browse Source

Forward transport and protocol name to Handler:init.

Loïc Hoguin 14 years ago
parent
commit
7888be00d2
2 changed files with 5 additions and 4 deletions
  1. 2 2
      README.md
  2. 3 2
      src/cowboy_http_protocol.erl

+ 2 - 2
README.md

@@ -63,9 +63,9 @@ use one of the predefined handlers or write your own. An hello world HTTP
 handler could be written like this:
 
     -module(my_handler).
-    -export([init/2, handle/2, terminate/2]).
+    -export([init/3, handle/2, terminate/2]).
 
-    init(Req, Opts) ->
+    init({tcp, http}, Req, Opts) ->
         {ok, Req, undefined}.
 
     handle(Req, State) ->

+ 3 - 2
src/cowboy_http_protocol.erl

@@ -130,8 +130,9 @@ header(http_eoh, Req, State) ->
 	handler_init(Req, State).
 
 -spec handler_init(Req::#http_req{}, State::#state{}) -> ok.
-handler_init(Req, State=#state{handler={Handler, Opts}}) ->
-	case catch Handler:init(Req, Opts) of
+handler_init(Req, State=#state{
+		transport=Transport, handler={Handler, Opts}}) ->
+	case catch Handler:init({Transport:name(), http}, Req, Opts) of
 		{ok, Req, HandlerState} ->
 			handler_loop(HandlerState, Req, State);
 		%% @todo {upgrade, transport, Module}; {upgrade, protocol, Module}