aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/ssl
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2017-02-04 08:54:25 -0800
committerGitHub <[email protected]>2017-02-04 08:54:25 -0800
commit084cf3c66b7cc3d24cb23d2bb548fa0fa4ee040a (patch)
tree6c3e0f158d3cf63e5ae8229126e3430847398ad3 /openssl/src/ssl
parentMerge pull request #571 from sfackler/build-script-cleanup (diff)
parentSwitch to foreign_types (diff)
downloadrust-openssl-084cf3c66b7cc3d24cb23d2bb548fa0fa4ee040a.tar.xz
rust-openssl-084cf3c66b7cc3d24cb23d2bb548fa0fa4ee040a.zip
Merge pull request #572 from sfackler/foreign-types
Switch to foreign_types
Diffstat (limited to 'openssl/src/ssl')
-rw-r--r--openssl/src/ssl/mod.rs30
-rw-r--r--openssl/src/ssl/tests/mod.rs2
2 files changed, 25 insertions, 7 deletions
diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs
index dd7f72cc..860e2e00 100644
--- a/openssl/src/ssl/mod.rs
+++ b/openssl/src/ssl/mod.rs
@@ -71,6 +71,7 @@
//! }
//! ```
use ffi;
+use foreign_types::{ForeignType, ForeignTypeRef};
use libc::{c_int, c_void, c_long, c_ulong};
use libc::{c_uchar, c_uint};
use std::any::Any;
@@ -102,7 +103,6 @@ use x509::store::{X509StoreBuilderRef, X509StoreRef};
use verify::X509VerifyParamRef;
use pkey::PKeyRef;
use error::ErrorStack;
-use types::{OpenSslType, OpenSslTypeRef};
use util::Opaque;
use stack::{Stack, StackRef};
@@ -966,7 +966,13 @@ impl SslContextBuilder {
}
}
-type_!(SslContext, SslContextRef, ffi::SSL_CTX, ffi::SSL_CTX_free);
+foreign_type! {
+ type CType = ffi::SSL_CTX;
+ fn drop = ffi::SSL_CTX_free;
+
+ pub struct SslContext;
+ pub struct SslContextRef;
+}
unsafe impl Send for SslContext {}
unsafe impl Sync for SslContext {}
@@ -1051,7 +1057,7 @@ pub struct CipherBits {
pub struct SslCipher(*mut ffi::SSL_CIPHER);
-impl OpenSslType for SslCipher {
+impl ForeignType for SslCipher {
type CType = ffi::SSL_CIPHER;
type Ref = SslCipherRef;
@@ -1076,7 +1082,7 @@ impl DerefMut for SslCipher {
pub struct SslCipherRef(Opaque);
-impl OpenSslTypeRef for SslCipherRef {
+impl ForeignTypeRef for SslCipherRef {
type CType = ffi::SSL_CIPHER;
}
@@ -1124,7 +1130,13 @@ impl SslCipherRef {
}
}
-type_!(SslSession, SslSessionRef, ffi::SSL_SESSION, ffi::SSL_SESSION_free);
+foreign_type! {
+ type CType = ffi::SSL_SESSION;
+ fn drop = ffi::SSL_SESSION_free;
+
+ pub struct SslSession;
+ pub struct SslSessionRef;
+}
impl SslSessionRef {
/// Returns the SSL session ID.
@@ -1149,7 +1161,13 @@ impl SslSessionRef {
}
}
-type_!(Ssl, SslRef, ffi::SSL, ffi::SSL_free);
+foreign_type! {
+ type CType = ffi::SSL;
+ fn drop = ffi::SSL_free;
+
+ pub struct Ssl;
+ pub struct SslRef;
+}
impl fmt::Debug for SslRef {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
diff --git a/openssl/src/ssl/tests/mod.rs b/openssl/src/ssl/tests/mod.rs
index 536088ab..9c00e3ed 100644
--- a/openssl/src/ssl/tests/mod.rs
+++ b/openssl/src/ssl/tests/mod.rs
@@ -174,7 +174,7 @@ macro_rules! run_test(
use hash::MessageDigest;
use x509::X509StoreContext;
use hex::FromHex;
- use types::OpenSslTypeRef;
+ use foreign_types::ForeignTypeRef;
use super::Server;
#[test]