diff options
| author | Ben Hood <0x6e6562@gmail.com> | 2008-09-29 21:31:21 +0100 |
|---|---|---|
| committer | Ben Hood <0x6e6562@gmail.com> | 2008-09-29 21:31:21 +0100 |
| commit | 63e6b878a7c10170112f2ea7515395700af21570 (patch) | |
| tree | 35a4155a96ced1b985d5d0104e0ee6173fef5d72 | |
| parent | f64385428372fc230421b559c201e2d69b0f7f9e (diff) | |
| download | rabbitmq-server-git-63e6b878a7c10170112f2ea7515395700af21570.tar.gz | |
Reverse routes and durable routes now get deleted
| -rw-r--r-- | src/rabbit_exchange.erl | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index f825a6d277..53abd5e794 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -296,8 +296,10 @@ route_with_reverse(#route{binding = Binding}) -> route_with_reverse(Binding); route_with_reverse(Binding = #binding{}) -> Route = #route{binding = Binding}, - ReverseRoute = #reverse_route{reverse_binding = reverse_binding(Binding)}, - {Route, ReverseRoute}. + {Route, reverse_route(Route)}. + +reverse_route(#route{binding = Binding}) -> + #reverse_route{reverse_binding = reverse_binding(Binding)}. reverse_binding(#binding{exchange_name = Exchange, queue_name = Queue, @@ -355,6 +357,14 @@ do_internal_delete(ExchangeName, Routes) -> _ -> lists:foreach(fun (R) -> ok = mnesia:delete_object(R) end, Routes), + lists:foreach(fun (R) -> + ok = mnesia:delete_object(reverse_route(R)) end, + Routes), + lists:foreach(fun (R) -> + ok = mnesia:delete_object(durable_routes, + R, write) + end, + Routes), ok = mnesia:delete({durable_exchanges, ExchangeName}), ok = mnesia:delete({exchange, ExchangeName}) end. |
