diff --git a/crates/irtt-client/src/client.rs b/crates/irtt-client/src/client.rs index 356721f..4decdf6 100644 --- a/crates/irtt-client/src/client.rs +++ b/crates/irtt-client/src/client.rs @@ -85,7 +85,7 @@ impl Client { .set_read_timeout(self.config.socket_config.recv_timeout); match (outcome, restore) { (Ok(outcome), Ok(())) => Ok(outcome), - (Ok(outcome), Err(_)) => Ok(outcome), + (Ok(_), Err(source)) => Err(ClientError::ReadTimeoutRestore { source }), (Err(err), Ok(())) => Err(err), (Err(err), Err(_)) => Err(err), } diff --git a/crates/irtt-client/src/error.rs b/crates/irtt-client/src/error.rs index e446a7b..9c5179e 100644 --- a/crates/irtt-client/src/error.rs +++ b/crates/irtt-client/src/error.rs @@ -14,6 +14,8 @@ pub enum ClientError { remote: std::net::SocketAddr, source: io::Error, }, + #[error("failed to restore configured socket read timeout after open negotiation: {source}")] + ReadTimeoutRestore { source: io::Error }, #[error("protocol error: {0}")] Protocol(#[from] irtt_proto::ProtoError), #[error("all open requests timed out")]