diff --git a/crates/ironrdp-async/src/framed.rs b/crates/ironrdp-async/src/framed.rs index 383dffbb..0c37ddbe 100644 --- a/crates/ironrdp-async/src/framed.rs +++ b/crates/ironrdp-async/src/framed.rs @@ -66,9 +66,13 @@ where S: StreamWrapper, { pub fn new(stream: S::InnerStream) -> Self { + Self::new_with_leftover(stream, BytesMut::new()) + } + + pub fn new_with_leftover(stream: S::InnerStream, leftover: BytesMut) -> Self { Self { stream: S::from_inner(stream), - buf: BytesMut::new(), + buf: leftover, } } diff --git a/crates/ironrdp-blocking/src/framed.rs b/crates/ironrdp-blocking/src/framed.rs index 3cf4cfd1..9c1bcb4f 100644 --- a/crates/ironrdp-blocking/src/framed.rs +++ b/crates/ironrdp-blocking/src/framed.rs @@ -10,10 +10,11 @@ pub struct Framed { impl Framed { pub fn new(stream: S) -> Self { - Self { - stream, - buf: BytesMut::new(), - } + Self::new_with_leftover(stream, BytesMut::new()) + } + + pub fn new_with_leftover(stream: S, leftover: BytesMut) -> Self { + Self { stream, buf: leftover } } pub fn into_inner(self) -> (S, BytesMut) {