|
@@ -96,8 +96,8 @@ impl<'a, 'b, H> PacketBuffer<'a, 'b, H> {
|
|
|
} else {
|
|
|
// Add padding to the end of the ring buffer so that the
|
|
|
// contiguous window is at the beginning of the ring buffer.
|
|
|
- *self.metadata_ring.enqueue_one()? = PacketMetadata::padding(size);
|
|
|
- self.payload_ring.enqueue_many(size);
|
|
|
+ *self.metadata_ring.enqueue_one()? = PacketMetadata::padding(contig_window);
|
|
|
+ self.payload_ring.enqueue_many(contig_window);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -224,6 +224,14 @@ mod test {
|
|
|
assert_eq!(buffer.metadata_ring.len(), 0);
|
|
|
}
|
|
|
|
|
|
+ #[test]
|
|
|
+ fn test_padding_with_large_payload() {
|
|
|
+ let mut buffer = buffer();
|
|
|
+ assert!(buffer.enqueue(12, ()).is_ok());
|
|
|
+ assert!(buffer.dequeue().is_ok());
|
|
|
+ buffer.enqueue(12, ()).unwrap().copy_from_slice(b"abcdefghijkl");
|
|
|
+ }
|
|
|
+
|
|
|
#[test]
|
|
|
fn test_dequeue_with() {
|
|
|
let mut buffer = buffer();
|