diff options
-rw-r--r-- | openssl/src/error.rs | 12 | ||||
-rw-r--r-- | openssl/src/ssl/error.rs | 30 | ||||
-rw-r--r-- | openssl/src/x509/mod.rs | 6 |
3 files changed, 15 insertions, 33 deletions
diff --git a/openssl/src/error.rs b/openssl/src/error.rs index ea278b14..103baff2 100644 --- a/openssl/src/error.rs +++ b/openssl/src/error.rs @@ -75,11 +75,7 @@ impl fmt::Display for ErrorStack { } } -impl error::Error for ErrorStack { - fn description(&self) -> &str { - "An OpenSSL error stack" - } -} +impl error::Error for ErrorStack {} impl From<ErrorStack> for io::Error { fn from(e: ErrorStack) -> io::Error { @@ -285,8 +281,4 @@ impl fmt::Display for Error { } } -impl error::Error for Error { - fn description(&self) -> &str { - "an OpenSSL error" - } -} +impl error::Error for Error {} diff --git a/openssl/src/ssl/error.rs b/openssl/src/ssl/error.rs index 044b8e83..6354409d 100644 --- a/openssl/src/ssl/error.rs +++ b/openssl/src/ssl/error.rs @@ -123,11 +123,7 @@ impl fmt::Display for Error { } impl error::Error for Error { - fn description(&self) -> &str { - "an OpenSSL error" - } - - fn cause(&self) -> Option<&dyn error::Error> { + fn source(&self) -> Option<&(dyn error::Error + 'static)> { match self.cause { Some(InnerError::Io(ref e)) => Some(e), Some(InnerError::Ssl(ref e)) => Some(e), @@ -151,15 +147,7 @@ pub enum HandshakeError<S> { } impl<S: fmt::Debug> StdError for HandshakeError<S> { - fn description(&self) -> &str { - match *self { - HandshakeError::SetupFailure(_) => "stream setup failed", - HandshakeError::Failure(_) => "the handshake failed", - HandshakeError::WouldBlock(_) => "the handshake was interrupted", - } - } - - fn cause(&self) -> Option<&dyn StdError> { + fn source(&self) -> Option<&(dyn StdError + 'static)> { match *self { HandshakeError::SetupFailure(ref e) => Some(e), HandshakeError::Failure(ref s) | HandshakeError::WouldBlock(ref s) => Some(s.error()), @@ -169,11 +157,17 @@ impl<S: fmt::Debug> StdError for HandshakeError<S> { impl<S: fmt::Debug> fmt::Display for HandshakeError<S> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(StdError::description(self))?; match *self { - HandshakeError::SetupFailure(ref e) => write!(f, ": {}", e)?, - HandshakeError::Failure(ref s) | HandshakeError::WouldBlock(ref s) => { - write!(f, ": {}", s.error())?; + HandshakeError::SetupFailure(ref e) => write!(f, "stream setup failed: {}", e)?, + HandshakeError::Failure(ref s) => { + write!(f, "the handshake failed: {}", s.error())?; + let verify = s.ssl().verify_result(); + if verify != X509VerifyResult::OK { + write!(f, ": {}", verify)?; + } + } + HandshakeError::WouldBlock(ref s) => { + write!(f, "the handshake was interrupted: {}", s.error())?; let verify = s.ssl().verify_result(); if verify != X509VerifyResult::OK { write!(f, ": {}", verify)?; diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index f156269f..5c750d60 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -1189,11 +1189,7 @@ impl fmt::Display for X509VerifyResult { } } -impl Error for X509VerifyResult { - fn description(&self) -> &str { - "an X509 validation error" - } -} +impl Error for X509VerifyResult {} impl X509VerifyResult { /// Creates an `X509VerifyResult` from a raw error number. |