Skip to content

Commit c472e6d

Browse files
authored
Merge pull request webrtc-rs#456 from webrtc-rs/anton/273-partial-read-2
[sctp] Include buffer size in `ErrShortBuffer`
2 parents 8168625 + 3cae751 commit c472e6d

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

sctp/src/association/association_test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -740,12 +740,12 @@ async fn test_assoc_reliable_short_buffer() -> Result<()> {
740740

741741
let mut buf = vec![0u8; 3];
742742
let result = s1.read_sctp(&mut buf).await;
743-
assert!(result.is_err(), "expected error to be io.ErrShortBuffer");
743+
assert!(result.is_err(), "expected error to be ErrShortBuffer");
744744
if let Err(err) = result {
745745
assert_eq!(
746746
err,
747-
Error::ErrShortBuffer,
748-
"expected error to be io.ErrShortBuffer"
747+
Error::ErrShortBuffer { size: 3 },
748+
"expected error to be ErrShortBuffer"
749749
);
750750
}
751751

sctp/src/error.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ pub enum Error {
209209
ErrOutboundPacketTooLarge,
210210
#[error("Stream closed")]
211211
ErrStreamClosed,
212-
#[error("Short buffer to be filled")]
213-
ErrShortBuffer,
212+
#[error("Short buffer (size: {size:?}) to be filled")]
213+
ErrShortBuffer { size: usize },
214214
#[error("Io EOF")]
215215
ErrEof,
216216
#[error("Invalid SystemTime")]

sctp/src/queue/queue_test.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,11 @@ fn test_reassembly_queue_detect_buffer_too_short() -> Result<()> {
795795
let result = rq.read(&mut buf);
796796
assert!(result.is_err(), "read() should not succeed");
797797
if let Err(err) = result {
798-
assert_eq!(err, Error::ErrShortBuffer, "read() should not succeed");
798+
assert_eq!(
799+
err,
800+
Error::ErrShortBuffer { size: 8 },
801+
"read() should not succeed"
802+
);
799803
}
800804
assert_eq!(rq.get_num_bytes(), 0, "num bytes mismatch");
801805

sctp/src/queue/reassembly_queue.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ impl ReassemblyQueue {
286286
buf[n_written..n_written + n].copy_from_slice(&c.user_data[..n]);
287287
n_written += n;
288288
if n < to_copy {
289-
err = Some(Error::ErrShortBuffer);
289+
err = Some(Error::ErrShortBuffer { size: buf.len() });
290290
}
291291
}
292292
}

sctp/src/stream/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl Stream {
195195
};
196196

197197
match result {
198-
Ok(_) | Err(Error::ErrShortBuffer) => return result,
198+
Ok(_) | Err(Error::ErrShortBuffer { .. }) => return result,
199199
Err(_) => {
200200
// wait for the next chunk to become available
201201
self.read_notifier.notified().await;

0 commit comments

Comments
 (0)