diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 7be5dd04ffcddb51919381ea2420a194dbb1b51f..e774abd1935349f32272c4a4fb4e8ccc806c6d2f 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -11,10 +11,7 @@ pub struct DH(*mut ffi::DH); impl DH { pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { - let dh = unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) }; - if dh == ptr::null_mut() { - return Err(SslError::get()); - } + let dh = try_ssl_null!(unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) }); mem::forget(p); mem::forget(g); mem::forget(q); @@ -33,28 +30,19 @@ impl DH { #[cfg(feature = "rfc5114")] pub fn get_1024_160() -> Result { - let dh = unsafe { ffi::DH_get_1024_160() }; - if dh == ptr::null_mut() { - return Err(SslError::get()); - } + let dh = try_ssl_null!(unsafe { ffi::DH_get_1024_160() }); Ok(DH(dh)) } #[cfg(feature = "rfc5114")] pub fn get_2048_224() -> Result { - let dh = unsafe { ffi::DH_get_2048_224() }; - if dh == ptr::null_mut() { - return Err(SslError::get()); - } + let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_224() }); Ok(DH(dh)) } #[cfg(feature = "rfc5114")] pub fn get_2048_256() -> Result { - let dh = unsafe { ffi::DH_get_2048_256() }; - if dh == ptr::null_mut() { - return Err(SslError::get()); - } + let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_256() }); Ok(DH(dh)) } diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index ee2e1f9f865de078a4f9a1fb349378798e368c11..20c9234c826af70876350548ac66eaffd4ad25e8 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -432,10 +432,7 @@ impl SslContext { pub fn new(method: SslMethod) -> Result { init(); - let ctx = unsafe { ffi::SSL_CTX_new(method.to_raw()) }; - if ctx == ptr::null_mut() { - return Err(SslError::get()); - } + let ctx = try_ssl_null!(unsafe { ffi::SSL_CTX_new(method.to_raw()) }); let ctx = SslContext { ctx: ctx }; @@ -690,10 +687,7 @@ impl Drop for Ssl { impl Ssl { pub fn new(ctx: &SslContext) -> Result { - let ssl = unsafe { ffi::SSL_new(ctx.ctx) }; - if ssl == ptr::null_mut() { - return Err(SslError::get()); - } + let ssl = try_ssl_null!(unsafe { ffi::SSL_new(ctx.ctx) }); let ssl = Ssl { ssl: ssl }; Ok(ssl) } @@ -1019,10 +1013,7 @@ impl DirectStream { impl DirectStream { fn new_base(ssl: Ssl, stream: S, sock: c_int) -> Result, SslError> { unsafe { - let bio = ffi::BIO_new_socket(sock, 0); - if bio == ptr::null_mut() { - return Err(SslError::get()); - } + let bio = try_ssl_null!(ffi::BIO_new_socket(sock, 0)); ffi::SSL_set_bio(ssl.ssl, bio, bio); }