diff options
| author | Ben Hood <0x6e6562@gmail.com> | 2008-09-20 20:11:32 +0100 |
|---|---|---|
| committer | Ben Hood <0x6e6562@gmail.com> | 2008-09-20 20:11:32 +0100 |
| commit | 8af0b8a0eb353b231112c0c9b9fd284393503878 (patch) | |
| tree | a741477676d26679c40fbbfa5fc820724902ae1f | |
| parent | 5ceca89ef32a4c6c755a99106af81496717242de (diff) | |
| download | rabbitmq-server-git-8af0b8a0eb353b231112c0c9b9fd284393503878.tar.gz | |
Backed out changeset 031a255683ee
| -rw-r--r-- | src/rabbit_amqqueue.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_channel.erl | 5 | ||||
| -rw-r--r-- | src/rabbit_exchange.erl | 14 |
3 files changed, 11 insertions, 10 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 67e529d380..748503bdbb 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -159,7 +159,7 @@ recover_queue(Q) -> add_default_binding(#amqqueue{name = QueueName}) -> Exchange = rabbit_misc:r(QueueName, exchange, <<>>), RoutingKey = QueueName#resource.name, - rabbit_exchange:add_binding(QueueName, Exchange, RoutingKey), + rabbit_exchange:add_binding(QueueName, Exchange, RoutingKey, []), ok. lookup(Name) -> diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index 1abb56a5bb..b8abc8cc65 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -571,7 +571,8 @@ handle_method(#'queue.delete'{queue = QueueNameBin, handle_method(#'queue.bind'{queue = QueueNameBin, exchange = ExchangeNameBin, routing_key = RoutingKey, - nowait = NoWait}, + nowait = NoWait, + arguments = Arguments}, _, State = #ch{ virtual_host = VHostPath }) -> %% FIXME: connection exception (!) on failure?? (see rule named "failure" in spec-XML) %% FIXME: don't allow binding to internal exchanges - including the one named "" ! @@ -580,7 +581,7 @@ handle_method(#'queue.bind'{queue = QueueNameBin, State), ExchangeName = rabbit_misc:r(VHostPath, exchange, ExchangeNameBin), case rabbit_exchange:add_binding(QueueName, ExchangeName, - ActualRoutingKey) of + ActualRoutingKey, Arguments) of {error, queue_not_found} -> rabbit_misc:protocol_error( not_found, "no ~s", [rabbit_misc:rs(QueueName)]); diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index ff8593998c..f523435dcb 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -33,7 +33,7 @@ simple_publish/6, simple_publish/3, route/2]). -export([add_binding/1, delete_binding/1]). --export([add_binding/3, delete_binding/3]). +-export([add_binding/4, delete_binding/4]). -export([delete/2]). -export([delete_bindings/1]). -export([check_type/1, assert_type/2, topic_matches/2]). @@ -69,11 +69,11 @@ -spec(add_binding/1 :: (binding()) -> 'ok' | not_found() | {'error', 'durability_settings_incompatible'}). -spec(delete_binding/1 :: (binding()) -> 'ok' | not_found()). --spec(add_binding/3 :: - (queue_name(), exchange_name(), routing_key()) -> +-spec(add_binding/4 :: + (queue_name(), exchange_name(), routing_key(), amqp_table()) -> bind_res() | {'error', 'durability_settings_incompatible'}). --spec(delete_binding/3 :: - (queue_name(), exchange_name(), routing_key()) -> +-spec(delete_binding/4 :: + (queue_name(), exchange_name(), routing_key(), amqp_table()) -> bind_res() | {'error', 'binding_not_found'}). -spec(delete_bindings/1 :: (amqqueue()) -> 'ok' | not_found()). -spec(topic_matches/2 :: (binary(), binary()) -> bool()). @@ -248,13 +248,13 @@ call_with_exchange_and_queue(#binding{exchange_name = Exchange, end. -add_binding(QueueName, ExchangeName, RoutingKey) -> +add_binding(QueueName, ExchangeName, RoutingKey, Arguments) -> Binding = #binding{exchange_name = ExchangeName, key = RoutingKey, queue_name = QueueName}, rabbit_misc:execute_mnesia_transaction(fun add_binding/1, [Binding]). -delete_binding(QueueName, ExchangeName, RoutingKey) -> +delete_binding(QueueName, ExchangeName, RoutingKey, Arguments) -> Binding = #binding{exchange_name = ExchangeName, key = RoutingKey, queue_name = QueueName}, |
