diff options
author | Alex Crichton <alex@alexcrichton.com> | 2016-09-30 00:43:05 -0700 |
---|---|---|
committer | Alex Crichton <alex@alexcrichton.com> | 2016-10-12 22:49:55 -0700 |
commit | 43c951f743e68fac5f45119eda7c994882a1d489 (patch) | |
tree | 45169f1b92858a3ba2ad0287de1bf1ecb395804b /openssl/src/error.rs | |
parent | c1e41349fbdf6d4ff942e236500c0d639203968d (diff) | |
download | rust-openssl-43c951f743e68fac5f45119eda7c994882a1d489.zip |
Add support for OpenSSL 1.1.0
This commit is relatively major refactoring of the `openssl-sys` crate as well
as the `openssl` crate itself. The end goal here was to support OpenSSL 1.1.0,
and lots of other various tweaks happened along the way. The major new features
are:
* OpenSSL 1.1.0 is supported
* OpenSSL 0.9.8 is no longer supported (aka all OSX users by default)
* All FFI bindings are verified with the `ctest` crate (same way as the `libc`
crate)
* CI matrixes are vastly expanded to include 32/64 of all platforms, more
OpenSSL version coverage, as well as ARM coverage on Linux
* The `c_helpers` module is completely removed along with the `gcc` dependency.
* The `openssl-sys` build script was completely rewritten
* Now uses `OPENSSL_DIR` to find the installation, not include/lib env vars.
* Better error messages for mismatched versions.
* Better error messages for failing to find OpenSSL on a platform (more can be
done here)
* Probing of OpenSSL build-time configuration to inform the API of the `*-sys`
crate.
* Many Cargo features have been removed as they're now enabled by default.
As this is a breaking change to both the `openssl` and `openssl-sys` crates this
will necessitate a major version bump of both. There's still a few more API
questions remaining but let's hash that out on a PR!
Closes #452
Diffstat (limited to 'openssl/src/error.rs')
-rw-r--r-- | openssl/src/error.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/openssl/src/error.rs b/openssl/src/error.rs index d76e7cbd..f54d7bda 100644 --- a/openssl/src/error.rs +++ b/openssl/src/error.rs @@ -71,7 +71,7 @@ impl Error { match unsafe { ffi::ERR_get_error() } { 0 => None, - err => Some((Error(err))), + err => Some(Error(err)), } } @@ -121,6 +121,7 @@ impl error::Error for Error { fn get_lib(err: c_ulong) -> &'static str { unsafe { let cstr = ffi::ERR_lib_error_string(err); + assert!(!cstr.is_null(), "bad lib: {}", err); let bytes = CStr::from_ptr(cstr as *const _).to_bytes(); str::from_utf8(bytes).unwrap() } @@ -129,6 +130,7 @@ fn get_lib(err: c_ulong) -> &'static str { fn get_func(err: c_ulong) -> &'static str { unsafe { let cstr = ffi::ERR_func_error_string(err); + assert!(!cstr.is_null(), "bad func: {}", err); let bytes = CStr::from_ptr(cstr as *const _).to_bytes(); str::from_utf8(bytes).unwrap() } @@ -137,6 +139,7 @@ fn get_func(err: c_ulong) -> &'static str { fn get_reason(err: c_ulong) -> &'static str { unsafe { let cstr = ffi::ERR_reason_error_string(err); + assert!(!cstr.is_null(), "bad reason: {}", err); let bytes = CStr::from_ptr(cstr as *const _).to_bytes(); str::from_utf8(bytes).unwrap() } |