Skip to content

Commit 3a70022

Browse files
BasicNack frame makes the consumer stop (dont know why) so we use the BackReject message instead when there is no need to reject multiple messages
1 parent ca8a39e commit 3a70022

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/channelimpl.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "basicackframe.h"
3737
#include "basicnackframe.h"
3838
#include "basicrecoverframe.h"
39+
#include "basicrejectframe.h"
3940

4041
/**
4142
* Set up namespace
@@ -555,8 +556,17 @@ bool ChannelImpl::ack(uint64_t deliveryTag, int flags)
555556
*/
556557
bool ChannelImpl::reject(uint64_t deliveryTag, int flags)
557558
{
558-
// send a nack frame
559-
return send(BasicNackFrame(_id, deliveryTag, flags & multiple, flags & requeue));
559+
// should we reject multiple messages?
560+
if (flags & multiple)
561+
{
562+
// send a nack frame
563+
return send(BasicNackFrame(_id, deliveryTag, true, flags & requeue));
564+
}
565+
else
566+
{
567+
// send a reject frame
568+
return send(BasicRejectFrame(_id, deliveryTag, flags & requeue));
569+
}
560570
}
561571

562572
/**

0 commit comments

Comments
 (0)