summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openssl/src/error.rs12
-rw-r--r--openssl/src/ssl/error.rs30
-rw-r--r--openssl/src/x509/mod.rs6
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.