Skip to content

Commit 18bff82

Browse files
authored
Fix receiver delivery queue handling (#48)
1 parent 7f968a5 commit 18bff82

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

CHANGES.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes
22

3+
## [2.1.5] - 2024-04-17
4+
5+
* Fix receiver's delivery queue handling
6+
37
## [2.1.4] - 2024-04-13
48

59
* Fix large transfers handling

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntex-amqp"
3-
version = "2.1.4"
3+
version = "2.1.5"
44
authors = ["ntex contributors <[email protected]>"]
55
description = "AMQP 1.0 Client/Server framework"
66
documentation = "https://docs.rs/ntex-amqp"

src/rcvlink.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,22 @@ impl ReceiverLink {
105105

106106
/// Check deliveries
107107
pub fn has_deliveries(&self) -> bool {
108-
!self.inner.get_mut().queue.is_empty()
108+
let inner = self.inner.get_ref();
109+
if inner.partial_body.is_none() {
110+
!inner.queue.is_empty()
111+
} else {
112+
inner.queue.len() > 1
113+
}
109114
}
110115

111116
/// Get delivery
112117
pub fn get_delivery(&self) -> Option<(Delivery, Transfer)> {
113-
self.inner.get_mut().queue.pop_front()
118+
let inner = self.inner.get_mut();
119+
if inner.partial_body.is_none() || inner.queue.len() > 1 {
120+
inner.queue.pop_front()
121+
} else {
122+
None
123+
}
114124
}
115125

116126
/// Send disposition frame
@@ -295,8 +305,6 @@ impl ReceiverLinkInner {
295305
self.credit -= 1;
296306
}
297307

298-
println!("============= {:#?}\n{:?}", transfer, self.partial_body);
299-
300308
// handle batched transfer
301309
if let Some(ref mut body) = self.partial_body {
302310
if transfer.0.delivery_id.is_some() {

0 commit comments

Comments
 (0)