0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-16 05:00:24 +00:00

Add middleware support

Middlewares allow customizing the request processing.

All existing Cowboy project are incompatible with this commit.
You need to change `{dispatch, Dispatch}` in the protocol options
to `{env, [{dispatch, Dispatch}]}` to fix your code.
This commit is contained in:
Loïc Hoguin 2013-01-03 22:47:51 +01:00
parent 73d86057f2
commit 1b3f510b7e
12 changed files with 529 additions and 251 deletions

View file

@ -64,7 +64,7 @@ end_per_suite(_Config) ->
init_per_group(autobahn, Config) ->
Port = 33080,
cowboy:start_http(autobahn, 100, [{port, Port}], [
{dispatch, init_dispatch()}
{env, [{dispatch, init_dispatch()}]}
]),
[{port, Port}|Config].

View file

@ -153,7 +153,7 @@ init_per_group(http, Config) ->
Transport = ranch_tcp,
Config1 = init_static_dir(Config),
{ok, _} = cowboy:start_http(http, 100, [{port, Port}], [
{dispatch, init_dispatch(Config1)},
{env, [{dispatch, init_dispatch(Config1)}]},
{max_keepalive, 50},
{timeout, 500}
]),
@ -172,7 +172,7 @@ init_per_group(https, Config) ->
application:start(public_key),
application:start(ssl),
{ok, _} = cowboy:start_https(https, 100, Opts ++ [{port, Port}], [
{dispatch, init_dispatch(Config1)},
{env, [{dispatch, init_dispatch(Config1)}]},
{max_keepalive, 50},
{timeout, 500}
]),
@ -183,7 +183,7 @@ init_per_group(onrequest, Config) ->
Port = 33082,
Transport = ranch_tcp,
{ok, _} = cowboy:start_http(onrequest, 100, [{port, Port}], [
{dispatch, init_dispatch(Config)},
{env, [{dispatch, init_dispatch(Config)}]},
{max_keepalive, 50},
{onrequest, fun onrequest_hook/1},
{timeout, 500}
@ -195,7 +195,7 @@ init_per_group(onresponse, Config) ->
Port = 33083,
Transport = ranch_tcp,
{ok, _} = cowboy:start_http(onresponse, 100, [{port, Port}], [
{dispatch, init_dispatch(Config)},
{env, [{dispatch, init_dispatch(Config)}]},
{max_keepalive, 50},
{onresponse, fun onresponse_hook/4},
{timeout, 500}
@ -503,8 +503,8 @@ http10_hostless(Config) ->
ranch:start_listener(Name, 5,
?config(transport, Config), ?config(opts, Config) ++ [{port, Port10}],
cowboy_protocol, [
{dispatch, [{'_', [
{[<<"http1.0">>, <<"hostless">>], http_handler, []}]}]},
{env, [{dispatch, [{'_', [
{[<<"http1.0">>, <<"hostless">>], http_handler, []}]}]}]},
{max_keepalive, 50},
{timeout, 500}]
),

View file

@ -79,7 +79,7 @@ end_per_suite(_Config) ->
init_per_group(ws, Config) ->
Port = 33080,
cowboy:start_http(ws, 100, [{port, Port}], [
{dispatch, init_dispatch()}
{env, [{dispatch, init_dispatch()}]}
]),
[{port, Port}|Config].