summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hood <0x6e6562@gmail.com>2008-10-13 18:58:20 +0100
committerBen Hood <0x6e6562@gmail.com>2008-10-13 18:58:20 +0100
commit88a8e55e6f2685d6c23f3ba53ea96c498404434d (patch)
treefae2bf1ee07e87a3985411a9c6b35355fc76bc30
parent14fd2f2fc46b92b625a5a843b1411f7247a81085 (diff)
downloadrabbitmq-server-88a8e55e6f2685d6c23f3ba53ea96c498404434d.tar.gz
Added wilcards to every argument field in binding record
-rw-r--r--src/rabbit_exchange.erl34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index 808cf8ae..2dcaf791 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -208,7 +208,8 @@ route(X = #exchange{type = direct}, RoutingKey) ->
route_internal(#exchange{name = Name}, RoutingKey) ->
MatchHead = #route{binding = #binding{exchange_name = Name,
queue_name = '$1',
- key = RoutingKey}},
+ key = RoutingKey,
+ args = '_'}},
lookup_qpids(mnesia:dirty_select(route, [{MatchHead, [], ['$1']}])).
lookup_qpids(Queues) ->
@@ -226,7 +227,8 @@ delete_bindings_for_exchange(ExchangeName) ->
indexed_delete(
#route{binding = #binding{exchange_name = ExchangeName,
queue_name = '_',
- key = '_'}},
+ key = '_',
+ args = '_'}},
fun delete_forward_routes/1, fun mnesia:delete_object/1).
delete_bindings_for_queue(QueueName) ->
@@ -234,7 +236,8 @@ delete_bindings_for_queue(QueueName) ->
indexed_delete(
reverse_route(#route{binding = #binding{exchange_name = '_',
queue_name = QueueName,
- key = '_'}}),
+ key = '_',
+ args = '_'}}),
fun mnesia:delete_object/1, fun delete_forward_routes/1),
[begin
[X] = mnesia:read({exchange, ExchangeName}),
@@ -257,7 +260,8 @@ exchanges_for_queue(QueueName) ->
MatchHead = reverse_route(
#route{binding = #binding{exchange_name = '$1',
queue_name = QueueName,
- key = '_'}}),
+ key = '_',
+ args = '_'}}),
sets:to_list(
sets:from_list(
mnesia:select(reverse_route, [{MatchHead, [], ['$1']}]))).
@@ -265,7 +269,8 @@ exchanges_for_queue(QueueName) ->
has_bindings(ExchangeName) ->
MatchHead = #route{binding = #binding{exchange_name = ExchangeName,
queue_name = '$1',
- key = '_'}},
+ key = '_',
+ args = '_'}},
continue(mnesia:select(route, [{MatchHead, [], ['$1']}], 1, read)).
continue('$end_of_table') -> false;
@@ -338,17 +343,21 @@ reverse_route(#reverse_route{reverse_binding = Binding}) ->
reverse_binding(#reverse_binding{exchange_name = Exchange,
queue_name = Queue,
- key = Key}) ->
+ key = Key,
+ args = Args}) ->
#binding{exchange_name = Exchange,
queue_name = Queue,
- key = Key};
+ key = Key,
+ args = Args};
reverse_binding(#binding{exchange_name = Exchange,
queue_name = Queue,
- key = Key}) ->
+ key = Key,
+ args = Args}) ->
#reverse_binding{exchange_name = Exchange,
queue_name = Queue,
- key = Key}.
+ key = Key,
+ args = Args}.
split_topic_key(Key) ->
{ok, KeySplit} = regexp:split(binary_to_list(Key), "\\."),
@@ -409,9 +418,10 @@ unconditional_delete(#exchange{name = ExchangeName}) ->
list_exchange_bindings(ExchangeName) ->
Route = #route{binding = #binding{exchange_name = ExchangeName,
queue_name = '_',
- key = '_'}},
- [{QueueName, RoutingKey, Args} ||
+ key = '_',
+ args = '_'}},
+ [{QueueName, RoutingKey, Arguments} ||
#route{binding = #binding{queue_name = QueueName,
key = RoutingKey,
- args = Args}}
+ args = Arguments}}
<- mnesia:dirty_match_object(Route)].