From 02c124a1fecee45f06e08314554502fce7a8190a Mon Sep 17 00:00:00 2001 From: Jared Roesch Date: Thu, 2 Oct 2014 02:05:49 -0700 Subject: [PATCH] Address CR comments and add a test --- src/ssl/error.rs | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/ssl/error.rs b/src/ssl/error.rs index b7688595..a1e8eadc 100644 --- a/src/ssl/error.rs +++ b/src/ssl/error.rs @@ -21,24 +21,36 @@ pub enum OpensslError { /// An unknown error UnknownError { /// The library reporting the error - library: CString, + library: String, /// The function reporting the error - function: CString, + function: String, /// The reason for the error - reason: CString + reason: String } } -fn get_lib(err: c_ulong) -> CString { - unsafe { CString::new(ffi::ERR_lib_error_string(err), false) } +fn get_lib(err: c_ulong) -> String { + unsafe { CString::new(ffi::ERR_lib_error_string(err), false) }.to_string() } -fn get_func(err: c_ulong) -> CString { - unsafe { CString::new(ffi::ERR_func_error_string(err), false) } +fn get_func(err: c_ulong) -> String { + unsafe { CString::new(ffi::ERR_func_error_string(err), false).to_string() } } -fn get_reason(err: c_ulong) -> CString { - unsafe { CString::new(ffi::ERR_reason_error_string(err), false) } +fn get_reason(err: c_ulong) -> String { + unsafe { CString::new(ffi::ERR_reason_error_string(err), false).to_string() } +} + +#[test] +fn test_uknown_error_should_have_correct_messages() { + let err = 336032784; + let library = get_lib(err); + let function = get_func(err); + let reason = get_reason(err); + + assert_eq!(library.as_slice(),"20"); + assert_eq!(function.as_slice(), "119"); + assert_eq!(reason.as_slice(), "1040"); } impl SslError {