summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-04-11 15:47:39 +0100
committerSimon MacMullen <simon@rabbitmq.com>2012-04-11 15:47:39 +0100
commitb14d6c21407c994c5bf46327d09962f1e1cecc17 (patch)
tree10dbd785d2526778ac79f5dd0029e04d6c465d88 /src
parentcafc912795e31a78710fe8232bcf9bc7026cc574 (diff)
downloadrabbitmq-server-git-b14d6c21407c994c5bf46327d09962f1e1cecc17.tar.gz
Deduplicate routes (needed for sender routing).
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_exchange.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index 39fccec3d1..0249155c83 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -246,7 +246,8 @@ info_all(VHostPath, Items) -> map(VHostPath, fun (X) -> info(X, Items) end).
route(#exchange{name = #resource{name = <<"">>, virtual_host = VHost}},
#delivery{message = #basic_message{routing_keys = RKs}}) ->
QNames = [rabbit_misc:r(VHost, queue, RK) || RK <- RKs],
- [QName || #amqqueue{name = QName} <- rabbit_amqqueue:lookup(QNames)];
+ lists:usort([QName || #amqqueue{name = QName}
+ <- rabbit_amqqueue:lookup(QNames)]);
route(X = #exchange{name = XName}, Delivery) ->
route1(Delivery, {queue:from_list([X]), XName, []}).