From f6a45ca24b2072ad7a48aea11ef490d26c6ddf92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Tue, 20 Aug 2024 18:58:16 +0400 Subject: [PATCH] refactor(error): remove CatchAllKind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau --- crates/ironrdp-connector/src/legacy.rs | 4 --- crates/ironrdp-error/src/lib.rs | 27 -------------------- crates/ironrdp-graphics/src/zgfx/mod.rs | 6 ----- crates/ironrdp-pdu/src/codecs/rfx.rs | 7 ----- crates/ironrdp-pdu/src/lib.rs | 5 ---- crates/ironrdp-pdu/src/mcs.rs | 7 ----- crates/ironrdp-pdu/src/rdp.rs | 7 ----- crates/ironrdp-pdu/src/rdp/server_license.rs | 7 ----- crates/ironrdp-pdu/src/rdp/vc.rs | 7 ----- crates/ironrdp-session/src/legacy.rs | 4 --- crates/ironrdp-session/src/rfx.rs | 18 ++++++++----- 11 files changed, 11 insertions(+), 88 deletions(-) diff --git a/crates/ironrdp-connector/src/legacy.rs b/crates/ironrdp-connector/src/legacy.rs index ad000a95..1b94e4c6 100644 --- a/crates/ironrdp-connector/src/legacy.rs +++ b/crates/ironrdp-connector/src/legacy.rs @@ -189,7 +189,3 @@ pub fn decode_io_channel(ctx: SendDataIndicationCtx<'_>) -> ConnectorResult &'static str; - } - - #[doc(hidden)] - impl From for crate::Error - where - E: ErrorContext + Send + Sync + 'static, - Kind: CatchAllKind, - { - #[cold] - fn from(error: E) -> Self { - Self::new(error.context(), Kind::CATCH_ALL_VALUE).with_source(error) - } - } -} diff --git a/crates/ironrdp-graphics/src/zgfx/mod.rs b/crates/ironrdp-graphics/src/zgfx/mod.rs index f99534e9..c1b3cc8c 100644 --- a/crates/ironrdp-graphics/src/zgfx/mod.rs +++ b/crates/ironrdp-graphics/src/zgfx/mod.rs @@ -447,12 +447,6 @@ pub enum ZgfxError { TokenBitsNotFound, } -impl ironrdp_error::legacy::ErrorContext for ZgfxError { - fn context(&self) -> &'static str { - "zgfx" - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/crates/ironrdp-pdu/src/codecs/rfx.rs b/crates/ironrdp-pdu/src/codecs/rfx.rs index d460d73c..de4b25e3 100644 --- a/crates/ironrdp-pdu/src/codecs/rfx.rs +++ b/crates/ironrdp-pdu/src/codecs/rfx.rs @@ -285,10 +285,3 @@ pub enum RfxError { #[error("got invalid channel height: {0}")] InvalidChannelHeight(i16), } - -#[cfg(feature = "std")] -impl ironrdp_error::legacy::ErrorContext for RfxError { - fn context(&self) -> &'static str { - "RFX" - } -} diff --git a/crates/ironrdp-pdu/src/lib.rs b/crates/ironrdp-pdu/src/lib.rs index 3a8141c5..aba60539 100644 --- a/crates/ironrdp-pdu/src/lib.rs +++ b/crates/ironrdp-pdu/src/lib.rs @@ -418,9 +418,4 @@ mod legacy { #[error("received invalid action code: {0}")] InvalidActionCode(u8), } - - #[cfg(feature = "std")] - impl ironrdp_error::legacy::CatchAllKind for crate::PduErrorKind { - const CATCH_ALL_VALUE: Self = crate::PduErrorKind::Custom; - } } diff --git a/crates/ironrdp-pdu/src/mcs.rs b/crates/ironrdp-pdu/src/mcs.rs index b5056d51..4b477353 100644 --- a/crates/ironrdp-pdu/src/mcs.rs +++ b/crates/ironrdp-pdu/src/mcs.rs @@ -1185,11 +1185,4 @@ mod legacy { io::Error::new(io::ErrorKind::Other, format!("MCS Connection Sequence error: {e}")) } } - - #[cfg(feature = "std")] - impl ironrdp_error::legacy::ErrorContext for McsError { - fn context(&self) -> &'static str { - "mcs" - } - } } diff --git a/crates/ironrdp-pdu/src/rdp.rs b/crates/ironrdp-pdu/src/rdp.rs index efc9f90e..af101a3f 100644 --- a/crates/ironrdp-pdu/src/rdp.rs +++ b/crates/ironrdp-pdu/src/rdp.rs @@ -113,10 +113,3 @@ impl From for io::Error { io::Error::new(io::ErrorKind::Other, format!("RDP Connection Sequence error: {e}")) } } - -#[cfg(feature = "std")] -impl ironrdp_error::legacy::ErrorContext for RdpError { - fn context(&self) -> &'static str { - "RDP" - } -} diff --git a/crates/ironrdp-pdu/src/rdp/server_license.rs b/crates/ironrdp-pdu/src/rdp/server_license.rs index 3911de8a..5ddbc443 100644 --- a/crates/ironrdp-pdu/src/rdp/server_license.rs +++ b/crates/ironrdp-pdu/src/rdp/server_license.rs @@ -264,13 +264,6 @@ impl From for ServerLicenseError { } } -#[cfg(feature = "std")] -impl ironrdp_error::legacy::ErrorContext for ServerLicenseError { - fn context(&self) -> &'static str { - "server license" - } -} - #[derive(Debug, PartialEq)] pub struct BlobHeader { pub blob_type: BlobType, diff --git a/crates/ironrdp-pdu/src/rdp/vc.rs b/crates/ironrdp-pdu/src/rdp/vc.rs index 34fc358d..ce4a8836 100644 --- a/crates/ironrdp-pdu/src/rdp/vc.rs +++ b/crates/ironrdp-pdu/src/rdp/vc.rs @@ -114,10 +114,3 @@ impl From for io::Error { io::Error::new(io::ErrorKind::Other, format!("Virtual channel error: {e}")) } } - -#[cfg(feature = "std")] -impl ironrdp_error::legacy::ErrorContext for ChannelError { - fn context(&self) -> &'static str { - "virtual channel error" - } -} diff --git a/crates/ironrdp-session/src/legacy.rs b/crates/ironrdp-session/src/legacy.rs index 9d4ab589..96dc8af5 100644 --- a/crates/ironrdp-session/src/legacy.rs +++ b/crates/ironrdp-session/src/legacy.rs @@ -18,7 +18,3 @@ impl From for crate::SessionErrorKind { pub(crate) fn map_error(error: ironrdp_connector::ConnectorError) -> SessionError { error.into_other_kind() } - -impl ironrdp_error::legacy::CatchAllKind for crate::SessionErrorKind { - const CATCH_ALL_VALUE: Self = crate::SessionErrorKind::General; -} diff --git a/crates/ironrdp-session/src/rfx.rs b/crates/ironrdp-session/src/rfx.rs index 1cd15ec6..b6dd3ad0 100644 --- a/crates/ironrdp-session/src/rfx.rs +++ b/crates/ironrdp-session/src/rfx.rs @@ -45,7 +45,8 @@ impl DecodingContext { input: &mut &[u8], ) -> SessionResult<(FrameId, InclusiveRectangle)> { loop { - let block_header = rfx::BlockHeader::from_buffer_consume(input)?; + let block_header = + rfx::BlockHeader::from_buffer_consume(input).map_err(|e| custom_err!("decode header", e))?; match block_header.ty { rfx::BlockType::Sync => { self.process_sync(input, block_header)?; @@ -65,7 +66,8 @@ impl DecodingContext { } fn process_sync(&mut self, input: &mut &[u8], header: rfx::BlockHeader) -> SessionResult<()> { - let _sync = rfx::SyncPdu::from_buffer_consume_with_header(input, header)?; + let _sync = + rfx::SyncPdu::from_buffer_consume_with_header(input, header).map_err(|e| custom_err!("decode sync", e))?; self.process_headers(input) } @@ -75,7 +77,7 @@ impl DecodingContext { // headers can appear in any order: CodecVersions, Channels, Context for _ in 0..3 { - match Headers::from_buffer_consume(input)? { + match Headers::from_buffer_consume(input).map_err(|e| custom_err!("decode headers", e))? { Headers::Context(c) => context = Some(c), Headers::Channels(c) => channels = Some(c), Headers::CodecVersions(_) => (), @@ -107,10 +109,12 @@ impl DecodingContext { let height = channel.height.as_u16(); let entropy_algorithm = self.context.entropy_algorithm; - let frame_begin = rfx::FrameBeginPdu::from_buffer_consume_with_header(input, header)?; - let mut region = rfx::RegionPdu::from_buffer_consume(input)?; - let tile_set = rfx::TileSetPdu::from_buffer_consume(input)?; - let _frame_end = rfx::FrameEndPdu::from_buffer_consume(input)?; + let frame_begin = rfx::FrameBeginPdu::from_buffer_consume_with_header(input, header) + .map_err(|e| custom_err!("decode frame_begin", e))?; + let mut region = rfx::RegionPdu::from_buffer_consume(input).map_err(|e| custom_err!("decode region", e))?; + let tile_set = rfx::TileSetPdu::from_buffer_consume(input).map_err(|e| custom_err!("decode tile_set", e))?; + let _frame_end = + rfx::FrameEndPdu::from_buffer_consume(input).map_err(|e| custom_err!("decode frame_end", e))?; if region.rectangles.is_empty() { region.rectangles = vec![RfxRectangle {