diff options
| -rw-r--r-- | src/rabbit_exchange.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 9d8aef906c..eebce96a33 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -213,7 +213,13 @@ route(#exchange{name = Name, type = topic}, RoutingKey) -> topic_matches(BindingKey, RoutingKey)]), lookup_qpids(mnesia:async_dirty(fun qlc:e/1, [Query])); -route(#exchange{name = Name}, RoutingKey) -> +route(X = #exchange{type = fanout}, _) -> + route_internal(X, '_'); + +route(X, RoutingKey) -> + route_internal(X, RoutingKey). + +route_internal(#exchange{name = Name}, RoutingKey) -> MatchHead = #route{binding = #binding{exchange_name = Name, key = RoutingKey, queue_name = '$1'}}, |
