aboutsummaryrefslogtreecommitdiff
path: root/src/ssl/error.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-01-07 08:13:19 -0800
committerSteven Fackler <[email protected]>2015-01-07 08:13:19 -0800
commit8b67adfc90d2ce3244f5c8f275916bb8b903fd21 (patch)
tree86faf0d035e9f001d7eca8a4ce43cd1b73aa1cbf /src/ssl/error.rs
parentRelease v0.2.13 (diff)
parentHandle recent breaking changes (diff)
downloadrust-openssl-0.2.14.tar.xz
rust-openssl-0.2.14.zip
Merge pull request #139 from vhbit/up-masterv0.2.14
Handle recent breaking changes
Diffstat (limited to 'src/ssl/error.rs')
-rw-r--r--src/ssl/error.rs19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/ssl/error.rs b/src/ssl/error.rs
index 888a9cdc..c52879a0 100644
--- a/src/ssl/error.rs
+++ b/src/ssl/error.rs
@@ -3,8 +3,8 @@ pub use self::OpensslError::*;
use libc::c_ulong;
use std::error;
+use std::ffi::c_str_to_bytes;
use std::io::IoError;
-use std::c_str::CString;
use ffi;
@@ -51,15 +51,24 @@ pub enum OpensslError {
}
fn get_lib(err: c_ulong) -> String {
- unsafe { CString::new(ffi::ERR_lib_error_string(err), false) }.to_string()
+ unsafe {
+ let bytes = c_str_to_bytes(&ffi::ERR_lib_error_string(err)).to_vec();
+ String::from_utf8(bytes).unwrap()
+ }
}
fn get_func(err: c_ulong) -> String {
- unsafe { CString::new(ffi::ERR_func_error_string(err), false).to_string() }
+ unsafe {
+ let bytes = c_str_to_bytes(&ffi::ERR_func_error_string(err)).to_vec();
+ String::from_utf8(bytes).unwrap()
+ }
}
fn get_reason(err: c_ulong) -> String {
- unsafe { CString::new(ffi::ERR_reason_error_string(err), false).to_string() }
+ unsafe {
+ let bytes = c_str_to_bytes(&ffi::ERR_reason_error_string(err)).to_vec();
+ String::from_utf8(bytes).unwrap()
+ }
}
impl SslError {
@@ -100,7 +109,7 @@ fn test_uknown_error_should_have_correct_messages() {
let UnknownError { ref library, ref function, ref reason } = errs[0];
- assert_eq!(library.as_slice(),"SSL routines");
+ assert_eq!(library.as_slice(), "SSL routines");
assert_eq!(function.as_slice(), "SSL23_GET_SERVER_HELLO");
assert_eq!(reason.as_slice(), "sslv3 alert handshake failure");
}