@@ -64,7 +64,7 @@ do_it(ReqData0, Context) ->
64
64
end ,
65
65
66
66
Reply = basic_gets (Count , Ch , Q , AckMode , Enc , Trunc ),
67
- maybe_rejects (Reply , Ch , AckMode ),
67
+ maybe_return (Reply , Ch , AckMode ),
68
68
rabbit_mgmt_util :reply (remove_delivery_tag (Reply ),
69
69
ReqData , Context )
70
70
end )
@@ -96,11 +96,11 @@ parse_ackmode(reject_requeue_true) -> false.
96
96
% the messages must rejects later,
97
97
% because we get always the same message if the
98
98
% messages are requeued inside basic_get/5
99
- maybe_rejects (R , Ch , AckMode ) ->
99
+ maybe_return (R , Ch , AckMode ) ->
100
100
lists :foreach (fun (X ) ->
101
- maybe_reject (Ch , AckMode ,
102
- proplists :get_value (delivery_tag , X ))
103
- end , R ).
101
+ maybe_reject_or_nack (Ch , AckMode ,
102
+ proplists :get_value (delivery_tag , X ))
103
+ end , R ).
104
104
105
105
% removes the delivery_tag from the reply.
106
106
% it is not necessary
@@ -109,12 +109,18 @@ remove_delivery_tag([H|T]) ->
109
109
[proplists :delete (delivery_tag , H ) | [X || X <- remove_delivery_tag (T )]].
110
110
111
111
112
- maybe_reject (Ch , AckMode , DeliveryTag ) when AckMode == reject_requeue_true ;
113
- AckMode == reject_requeue_false ->
112
+ maybe_reject_or_nack (Ch , AckMode , DeliveryTag )
113
+ when AckMode == reject_requeue_true ;
114
+ AckMode == reject_requeue_false ->
114
115
amqp_channel :call (Ch ,
115
- # 'basic.reject' {delivery_tag = DeliveryTag ,
116
- requeue = ackmode_to_requeue (AckMode )});
117
- maybe_reject (_Ch , _AckMode , _DeliveryTag ) -> ok .
116
+ # 'basic.reject' {delivery_tag = DeliveryTag ,
117
+ requeue = ackmode_to_requeue (AckMode )});
118
+ maybe_reject_or_nack (Ch , ack_requeue_true , DeliveryTag ) ->
119
+ amqp_channel :call (Ch ,
120
+ # 'basic.nack' {delivery_tag = DeliveryTag ,
121
+ multiple = false ,
122
+ requeue = true });
123
+ maybe_reject_or_nack (_Ch , _AckMode , _DeliveryTag ) -> ok .
118
124
119
125
120
126
basic_get (Ch , Q , AckMode , Enc , Trunc ) ->
0 commit comments