diff options
| author | Matthias Radestock <matthias@lshift.net> | 2010-04-09 17:57:10 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2010-04-09 17:57:10 +0100 |
| commit | 14333df08bbb986c982fdf7a908cbb1cc1fc2ff9 (patch) | |
| tree | 8aee3efe2ab0c1984a91e725471ffd172d4610c2 /src | |
| parent | 417be4110aa613f248dbb64f2b4534661f9fa078 (diff) | |
| parent | 3dd129490755235c6261b38ce39c614a64f1212c (diff) | |
| download | rabbitmq-server-git-14333df08bbb986c982fdf7a908cbb1cc1fc2ff9.tar.gz | |
merge bug22603 into default
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 21 | ||||
| -rw-r--r-- | src/rabbit_basic.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_channel.erl | 8 |
3 files changed, 15 insertions, 17 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index a6e0f40dc5..ba41f55030 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -374,7 +374,7 @@ maybe_send_reply(ChPid, Msg) -> ok = rabbit_channel:send_command(ChPid, Msg). qname(#q{q = #amqqueue{name = QName}}) -> QName. -persist_message(_Txn, _QName, #basic_message{persistent_key = none}) -> +persist_message(_Txn, _QName, #basic_message{is_persistent = false}) -> ok; persist_message(Txn, QName, Message) -> M = Message#basic_message{ @@ -382,29 +382,28 @@ persist_message(Txn, QName, Message) -> content = rabbit_binary_parser:clear_decoded_content( Message#basic_message.content)}, persist_work(Txn, QName, - [{publish, M, {QName, M#basic_message.persistent_key}}]). + [{publish, M, {QName, M#basic_message.guid}}]). persist_delivery(_QName, _Message, true) -> ok; -persist_delivery(_QName, #basic_message{persistent_key = none}, +persist_delivery(_QName, #basic_message{is_persistent = false}, _IsDelivered) -> ok; -persist_delivery(QName, #basic_message{persistent_key = PKey}, +persist_delivery(QName, #basic_message{guid = Guid}, _IsDelivered) -> - persist_work(none, QName, [{deliver, {QName, PKey}}]). + persist_work(none, QName, [{deliver, {QName, Guid}}]). persist_acks(Txn, QName, Messages) -> persist_work(Txn, QName, - [{ack, {QName, PKey}} || - #basic_message{persistent_key = PKey} <- Messages, - PKey =/= none]). + [{ack, {QName, Guid}} || #basic_message{ + guid = Guid, is_persistent = true} <- Messages]). -persist_auto_ack(_QName, #basic_message{persistent_key = none}) -> +persist_auto_ack(_QName, #basic_message{is_persistent = false}) -> ok; -persist_auto_ack(QName, #basic_message{persistent_key = PKey}) -> +persist_auto_ack(QName, #basic_message{guid = Guid}) -> %% auto-acks are always non-transactional - rabbit_persister:dirty_work([{ack, {QName, PKey}}]). + rabbit_persister:dirty_work([{ack, {QName, Guid}}]). persist_work(_Txn,_QName, []) -> ok; diff --git a/src/rabbit_basic.erl b/src/rabbit_basic.erl index 9ebb6e72e0..7595d53b60 100644 --- a/src/rabbit_basic.erl +++ b/src/rabbit_basic.erl @@ -96,7 +96,8 @@ message(ExchangeName, RoutingKeyBin, RawProperties, BodyBin) -> #basic_message{exchange_name = ExchangeName, routing_key = RoutingKeyBin, content = build_content(Properties, BodyBin), - persistent_key = none}. + guid = rabbit_guid:guid(), + is_persistent = false}. properties(P = #'P_basic'{}) -> P; diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index ea70210a83..51eb93c5cf 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -383,14 +383,12 @@ handle_method(#'basic.publish'{exchange = ExchangeNameBin, %% We decode the content's properties here because we're almost %% certain to want to look at delivery-mode and priority. DecodedContent = rabbit_binary_parser:ensure_content_decoded(Content), - PersistentKey = case is_message_persistent(DecodedContent) of - true -> rabbit_guid:guid(); - false -> none - end, + IsPersistent = is_message_persistent(DecodedContent), Message = #basic_message{exchange_name = ExchangeName, routing_key = RoutingKey, content = DecodedContent, - persistent_key = PersistentKey}, + guid = rabbit_guid:guid(), + is_persistent = IsPersistent}, {RoutingRes, DeliveredQPids} = rabbit_exchange:publish( Exchange, |
