diff --git a/boring/src/ssl/error.rs b/boring/src/ssl/error.rs index 5fb91659..a7e6f9fc 100644 --- a/boring/src/ssl/error.rs +++ b/boring/src/ssl/error.rs @@ -81,6 +81,10 @@ impl Error { _ => None, } } + + pub fn would_block(&self) -> bool { + matches!(self.code, ErrorCode::WANT_READ | ErrorCode::WANT_WRITE) + } } impl From for Error { diff --git a/boring/src/ssl/mod.rs b/boring/src/ssl/mod.rs index 00aa82a0..94a7f6d5 100644 --- a/boring/src/ssl/mod.rs +++ b/boring/src/ssl/mod.rs @@ -3242,11 +3242,9 @@ impl MidHandshakeSslStream { Ok(self.stream) } else { self.error = self.stream.make_error(ret); - match self.error.code() { - ErrorCode::WANT_READ | ErrorCode::WANT_WRITE => { - Err(HandshakeError::WouldBlock(self)) - } - _ => Err(HandshakeError::Failure(self)), + match self.error.would_block() { + true => Err(HandshakeError::WouldBlock(self)), + false => Err(HandshakeError::Failure(self)), } } } @@ -3606,14 +3604,12 @@ where Ok(stream) } else { let error = stream.make_error(ret); - match error.code() { - ErrorCode::WANT_READ | ErrorCode::WANT_WRITE => { - Err(HandshakeError::WouldBlock(MidHandshakeSslStream { - stream, - error, - })) - } - _ => Err(HandshakeError::Failure(MidHandshakeSslStream { + match error.would_block() { + true => Err(HandshakeError::WouldBlock(MidHandshakeSslStream { + stream, + error, + })), + false => Err(HandshakeError::Failure(MidHandshakeSslStream { stream, error, })), @@ -3633,14 +3629,12 @@ where Ok(stream) } else { let error = stream.make_error(ret); - match error.code() { - ErrorCode::WANT_READ | ErrorCode::WANT_WRITE => { - Err(HandshakeError::WouldBlock(MidHandshakeSslStream { - stream, - error, - })) - } - _ => Err(HandshakeError::Failure(MidHandshakeSslStream { + match error.would_block() { + true => Err(HandshakeError::WouldBlock(MidHandshakeSslStream { + stream, + error, + })), + false => Err(HandshakeError::Failure(MidHandshakeSslStream { stream, error, })), @@ -3662,14 +3656,12 @@ where Ok(stream) } else { let error = stream.make_error(ret); - match error.code() { - ErrorCode::WANT_READ | ErrorCode::WANT_WRITE => { - Err(HandshakeError::WouldBlock(MidHandshakeSslStream { - stream, - error, - })) - } - _ => Err(HandshakeError::Failure(MidHandshakeSslStream { + match error.would_block() { + true => Err(HandshakeError::WouldBlock(MidHandshakeSslStream { + stream, + error, + })), + false => Err(HandshakeError::Failure(MidHandshakeSslStream { stream, error, })),