diff options
author | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-01-19 21:27:03 +0000 |
---|---|---|
committer | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-01-19 21:27:03 +0000 |
commit | f8ddf02f3d43445ba57ed290ff5b9f1df2b499b4 (patch) | |
tree | b775bd82609a2f2774c85d138d08d76e752803e9 /src/rabbit_channel_sup.erl | |
parent | a3ff54bc80fbe7cef61edc4a53142204f99f8f38 (diff) | |
parent | f15f44d12f8f0c0f9bd9bfa899bd29aca2ed4692 (diff) | |
download | rabbitmq-server-f8ddf02f3d43445ba57ed290ff5b9f1df2b499b4.tar.gz |
merging in from default
Diffstat (limited to 'src/rabbit_channel_sup.erl')
-rw-r--r-- | src/rabbit_channel_sup.erl | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/rabbit_channel_sup.erl b/src/rabbit_channel_sup.erl index d426d55d..3b00181b 100644 --- a/src/rabbit_channel_sup.erl +++ b/src/rabbit_channel_sup.erl @@ -18,7 +18,7 @@ -behaviour(supervisor2). --export([start_link/1]). +-export([start_link/2]). -export([init/1]). @@ -35,14 +35,15 @@ rabbit_channel:channel_number(), non_neg_integer(), pid(), rabbit_types:user(), rabbit_types:vhost(), pid()}). --spec(start_link/1 :: (start_link_args()) -> {'ok', pid(), {pid(), any()}}). +-spec(start_link/2 :: (atom(), start_link_args()) -> + {'ok', pid(), {pid(), any()}}). -endif. %%---------------------------------------------------------------------------- -start_link({Protocol, Sock, Channel, FrameMax, ReaderPid, User, VHost, - Collector}) -> +start_link(tcp, {Protocol, Sock, Channel, FrameMax, ReaderPid, User, VHost, + Collector}) -> {ok, SupPid} = supervisor2:start_link(?MODULE, []), {ok, WriterPid} = supervisor2:start_child( @@ -58,7 +59,17 @@ start_link({Protocol, Sock, Channel, FrameMax, ReaderPid, User, VHost, Collector, start_limiter_fun(SupPid)]}, intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}), {ok, AState} = rabbit_command_assembler:init(Protocol), - {ok, SupPid, {ChannelPid, AState}}. + {ok, SupPid, {ChannelPid, AState}}; +start_link(direct, {Channel, ClientChannelPid, User, VHost, Collector}) -> + {ok, SupPid} = supervisor2:start_link(?MODULE, []), + {ok, ChannelPid} = + supervisor2:start_child( + SupPid, + {channel, {rabbit_channel, start_link, + [Channel, ClientChannelPid, ClientChannelPid, + User, VHost, Collector, start_limiter_fun(SupPid)]}, + intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}), + {ok, SupPid, {ChannelPid, none}}. %%---------------------------------------------------------------------------- |