Loading openssl/src/ssl/error.rs +17 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,23 @@ pub enum SslError { impl fmt::Display for SslError { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { fmt.write_str(error::Error::description(self)) try!(fmt.write_str(error::Error::description(self))); if let OpenSslErrors(ref errs) = *self { let mut first = true; for err in errs { if first { try!(fmt.write_str(": ")); first = false; } else { try!(fmt.write_str(", ")); } match *err { UnknownError { ref reason, .. } => try!(fmt.write_str(reason)), } } } Ok(()) } } Loading openssl/src/ssl/mod.rs +9 −3 Original line number Diff line number Diff line use libc::{c_int, c_void, c_long}; use std::ffi::{CString, c_str_to_bytes}; use std::old_io::{IoResult, IoError, EndOfFile, Stream, Reader, Writer}; use std::old_io::{IoResult, IoError, EndOfFile, OtherIoError, Stream, Reader, Writer}; use std::mem; use std::fmt; use std::num::FromPrimitive; Loading @@ -9,7 +9,7 @@ use std::sync::{Once, ONCE_INIT, Arc}; use bio::{MemBio}; use ffi; use ssl::error::{SslError, SslSessionClosed, StreamError}; use ssl::error::{SslError, SslSessionClosed, StreamError, OpenSslErrors}; use x509::{X509StoreContext, X509FileType, X509}; pub mod error; Loading Loading @@ -559,7 +559,13 @@ impl<S: Stream> Reader for SslStream<S> { detail: None }), Err(StreamError(e)) => Err(e), _ => unreachable!() Err(e @ OpenSslErrors(_)) => { Err(IoError { kind: OtherIoError, desc: "SSL error", detail: Some(format!("{}", e)), }) } } } } Loading Loading
openssl/src/ssl/error.rs +17 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,23 @@ pub enum SslError { impl fmt::Display for SslError { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { fmt.write_str(error::Error::description(self)) try!(fmt.write_str(error::Error::description(self))); if let OpenSslErrors(ref errs) = *self { let mut first = true; for err in errs { if first { try!(fmt.write_str(": ")); first = false; } else { try!(fmt.write_str(", ")); } match *err { UnknownError { ref reason, .. } => try!(fmt.write_str(reason)), } } } Ok(()) } } Loading
openssl/src/ssl/mod.rs +9 −3 Original line number Diff line number Diff line use libc::{c_int, c_void, c_long}; use std::ffi::{CString, c_str_to_bytes}; use std::old_io::{IoResult, IoError, EndOfFile, Stream, Reader, Writer}; use std::old_io::{IoResult, IoError, EndOfFile, OtherIoError, Stream, Reader, Writer}; use std::mem; use std::fmt; use std::num::FromPrimitive; Loading @@ -9,7 +9,7 @@ use std::sync::{Once, ONCE_INIT, Arc}; use bio::{MemBio}; use ffi; use ssl::error::{SslError, SslSessionClosed, StreamError}; use ssl::error::{SslError, SslSessionClosed, StreamError, OpenSslErrors}; use x509::{X509StoreContext, X509FileType, X509}; pub mod error; Loading Loading @@ -559,7 +559,13 @@ impl<S: Stream> Reader for SslStream<S> { detail: None }), Err(StreamError(e)) => Err(e), _ => unreachable!() Err(e @ OpenSslErrors(_)) => { Err(IoError { kind: OtherIoError, desc: "SSL error", detail: Some(format!("{}", e)), }) } } } } Loading