diff options
author | Emile Joubert <emile@rabbitmq.com> | 2011-01-24 17:40:26 +0000 |
---|---|---|
committer | Emile Joubert <emile@rabbitmq.com> | 2011-01-24 17:40:26 +0000 |
commit | d887a84c64321582266051b9a26ac9a9f1d1f6f7 (patch) | |
tree | 2e7eb985f76143d2c21989609648ddfb2609cf9d /src/rabbit_exchange_type_direct.erl | |
parent | 7068da5a734cb426d193aaf16a9ca410a4e9d454 (diff) | |
download | rabbitmq-server-d887a84c64321582266051b9a26ac9a9f1d1f6f7.tar.gz |
Treat sender-specified destinations as routing keys
rather than queue names
Diffstat (limited to 'src/rabbit_exchange_type_direct.erl')
-rw-r--r-- | src/rabbit_exchange_type_direct.erl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index ade57451..97988381 100644 --- a/src/rabbit_exchange_type_direct.erl +++ b/src/rabbit_exchange_type_direct.erl @@ -51,13 +51,13 @@ description() -> [{name, <<"direct">>}, {description, <<"AMQP direct exchange, as per the AMQP specification">>}]. -route(#exchange{name = #resource{virtual_host = VHost} = Name}, +route(#exchange{name = Name}, #delivery{message = #basic_message{routing_key = RoutingKey, content = Content}}) -> - BindingRoutes = rabbit_router:match_routing_key(Name, RoutingKey), - HeaderRoutes = rabbit_exchange:header_routes( - (Content#content.properties)#'P_basic'.headers, VHost), - BindingRoutes ++ HeaderRoutes. + HeaderKeys = rabbit_exchange:header_routes( + (Content#content.properties)#'P_basic'.headers), + lists:flatten([rabbit_router:match_routing_key(Name, RKey) || + RKey <- [RoutingKey | HeaderKeys]]). validate(_X) -> ok. create(_Tx, _X) -> ok. |