summaryrefslogtreecommitdiff
path: root/src/rabbit_channel_sup.erl
diff options
context:
space:
mode:
authorVlad Alexandru Ionescu <vlad@rabbitmq.com>2011-01-19 21:27:03 +0000
committerVlad Alexandru Ionescu <vlad@rabbitmq.com>2011-01-19 21:27:03 +0000
commitf8ddf02f3d43445ba57ed290ff5b9f1df2b499b4 (patch)
treeb775bd82609a2f2774c85d138d08d76e752803e9 /src/rabbit_channel_sup.erl
parenta3ff54bc80fbe7cef61edc4a53142204f99f8f38 (diff)
parentf15f44d12f8f0c0f9bd9bfa899bd29aca2ed4692 (diff)
downloadrabbitmq-server-f8ddf02f3d43445ba57ed290ff5b9f1df2b499b4.tar.gz
merging in from default
Diffstat (limited to 'src/rabbit_channel_sup.erl')
-rw-r--r--src/rabbit_channel_sup.erl21
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}}.
%%----------------------------------------------------------------------------