diff options
author | Emile Joubert <emile@lshift.net> | 2008-11-20 20:29:26 +0000 |
---|---|---|
committer | Emile Joubert <emile@lshift.net> | 2008-11-20 20:29:26 +0000 |
commit | 7cec7c133b200dad670c9884b9efac106a9f22cc (patch) | |
tree | ca99385784733cce2317494c0dc41b382cdd47c4 | |
parent | c5c1bd721935c6bda4189cc2bcd100817c3c2eee (diff) | |
parent | 8c0969ec73efbffd31a4d4196447d545ad1da2ac (diff) | |
download | rabbitmq-server-7cec7c133b200dad670c9884b9efac106a9f22cc.tar.gz |
Merged bug18381 into bug19684
-rw-r--r-- | src/rabbit_exchange.erl | 13 | ||||
-rw-r--r-- | src/rabbit_networking.erl | 8 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index cc73f80c..273cf3d3 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -33,7 +33,7 @@ info/1, info/2, info_all/0, info_all/1, simple_publish/6, simple_publish/3, route/2]). --export([add_binding/4, delete_binding/4]). +-export([add_binding/4, delete_binding/4, list_bindings/0]). -export([delete/2]). -export([delete_bindings_for_queue/1]). -export([check_type/1, assert_type/2, topic_matches/2]). @@ -80,6 +80,8 @@ -spec(delete_binding/4 :: (exchange_name(), queue_name(), routing_key(), amqp_table()) -> bind_res() | {'error', 'binding_not_found'}). +-spec(list_bindings/0 :: () -> + [{exchange_name(), queue_name(), routing_key(), amqp_table()}]). -spec(delete_bindings_for_queue/1 :: (queue_name()) -> 'ok'). -spec(topic_matches/2 :: (binary(), binary()) -> bool()). -spec(delete/2 :: (exchange_name(), bool()) -> @@ -360,6 +362,15 @@ sync_binding(ExchangeName, QueueName, RoutingKey, Arguments, Durable, Fun) -> R <- tuple_to_list(route_with_reverse(Binding))], ok. +list_bindings() -> + [{ExchangeName, QueueName, RoutingKey, Arguments} || + #route{binding = #binding{ + exchange_name = ExchangeName, + key = RoutingKey, + queue_name = QueueName, + args = Arguments}} + <- rabbit_misc:dirty_read_all(route)]. + route_with_reverse(#route{binding = Binding}) -> route_with_reverse(Binding); route_with_reverse(Binding = #binding{}) -> diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl index 79c927cb..9fc34503 100644 --- a/src/rabbit_networking.erl +++ b/src/rabbit_networking.erl @@ -26,7 +26,8 @@ -module(rabbit_networking). -export([start/0, start_tcp_listener/2, stop_tcp_listener/2, - on_node_down/1, active_listeners/0, node_listeners/1]). + on_node_down/1, active_listeners/0, node_listeners/1, + connections/0]). %%used by TCP-based transports, e.g. STOMP adapter -export([check_tcp_listener_address/3]). @@ -46,6 +47,7 @@ -spec(stop_tcp_listener/2 :: (host(), ip_port()) -> 'ok'). -spec(active_listeners/0 :: () -> [listener()]). -spec(node_listeners/1 :: (node()) -> [listener()]). +-spec(connections/0 :: () -> [pid()]). -spec(on_node_down/1 :: (node()) -> 'ok'). -spec(check_tcp_listener_address/3 :: (atom(), host(), ip_port()) -> {ip_address(), atom()}). @@ -136,6 +138,10 @@ start_client(Sock) -> Child ! {go, Sock}, Child. +connections() -> + [Pid || {_, Pid, _, _} <- supervisor:which_children( + rabbit_tcp_client_sup)]. + %%-------------------------------------------------------------------- tcp_host({0,0,0,0}) -> |