diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-09-03 15:12:29 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-09-03 15:12:29 +0100 |
| commit | 954ba7ce3f586acfa8f61b328ee77f0def521240 (patch) | |
| tree | 7f5d2773087e1b2f676de41971bd609ea22894e8 | |
| parent | 06c5b1782b13f2346ae0dd888e4b3c57879d78a5 (diff) | |
| download | rabbitmq-server-git-954ba7ce3f586acfa8f61b328ee77f0def521240.tar.gz | |
moved some confirm logic from router to channel
| -rw-r--r-- | src/rabbit_channel.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_router.erl | 8 |
2 files changed, 4 insertions, 12 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index 590bf2d61e..917188d4d4 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -554,10 +554,10 @@ handle_method(#'basic.publish'{exchange = ExchangeNameBin, State2 = case RoutingRes of %% Confirm transient messages now routed -> - case IsPersistent of - true -> State1; - false -> send_or_enqueue_ack( - MsgSeqNo, State1) + case {IsPersistent, DeliveredQPids} of + {_, []} -> send_or_enqueue_ack(MsgSeqNo, State1); + {true, _} -> State1; + {false, _} -> send_or_enqueue_ack(MsgSeqNo, State1) end; %% Confirm after basic.returns unroutable -> diff --git a/src/rabbit_router.erl b/src/rabbit_router.erl index 3d270916d5..aaf3ae927d 100644 --- a/src/rabbit_router.erl +++ b/src/rabbit_router.erl @@ -65,14 +65,6 @@ deliver(QPids, Delivery = #delivery{mandatory = false, %% case below. delegate:invoke_no_result( QPids, fun (Pid) -> rabbit_amqqueue:deliver(Pid, Delivery) end), - case {QPids, MsgSeqNo} of - {_, undefined} -> ok; - {[], _} -> - %% No queues will get the message. This is fine, so we - %% just confirm it. - rabbit_channel:confirm(self(), MsgSeqNo); - _ -> ok - end, maybe_inform_channel(MsgSeqNo, QPids), {routed, QPids}; |
