diff options
author | kjnilsson <knilsson@pivotal.io> | 2021-04-08 17:50:16 +0100 |
---|---|---|
committer | kjnilsson <knilsson@pivotal.io> | 2021-04-08 17:50:16 +0100 |
commit | 357132aaeab0b358aaaf8bb73c8b97cec06b12bf (patch) | |
tree | 9c0ee134a7a537f61fab4f6f02f2dbde95af5aa0 | |
parent | 38deddf64d9b0450e42f0bff9174d06708a2990f (diff) | |
download | rabbitmq-server-git-amqp10-handle-nacks.tar.gz |
fixesamqp10-handle-nacks
-rw-r--r-- | deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl index c790dbe999..ec31924937 100644 --- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl +++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl @@ -369,21 +369,22 @@ nack(#'basic.nack'{delivery_tag = DTag, multiple = Multiple}, Session0) -> {Disposition, Session}. delivery_ids(DTag, Multiple, - #session{incoming_unsettled_map = Unsettled} = Session) -> + #session{incoming_unsettled_map = Unsettled0} = Session) -> case Multiple of - true -> acknowledgement_range(DTag, Unsettled); + true -> + {Ids, Unsettled} = acknowledgement_range(DTag, Unsettled0), + {Ids, Session#session{incoming_unsettled_map = Unsettled}}; false -> - case gb_trees:lookup(DTag, Unsettled) of + case gb_trees:lookup(DTag, Unsettled0) of {value, #incoming_delivery{ delivery_id = Id }} -> {[Id], - Session#session{incoming_unsettled_map = gb_trees:delete(DTag, Unsettled)} - }; + Session#session{incoming_unsettled_map = + gb_trees:delete(DTag, Unsettled0)}}; none -> {[], Session} end end. - acknowledgement_range(DTag, Unsettled) -> acknowledgement_range(DTag, Unsettled, []). |