Commit d79090a0 authored by Charlie Li's avatar Charlie Li
Browse files

Reconcile exdata and version functions between libraries/versions.

parent 98f91769
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@ pub fn get(openssl_version: Option<u64>, libressl_version: Option<u64>) -> Vec<&
        if libressl_version >= 0x2_07_00_00_0 {
            cfgs.push("libressl270");
        }
        if libressl_version >= 0x2_07_01_00_0 {
            cfgs.push("libressl271");
        }
        if libressl_version >= 0x2_07_03_00_0 {
            cfgs.push("libressl273");
        }
+8 −2
Original line number Diff line number Diff line
@@ -15,7 +15,13 @@ cfg_if! {
    if #[cfg(ossl110)] {
        pub const CRYPTO_EX_INDEX_SSL: c_int = 0;
        pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 1;

    } else if #[cfg(libressl)] {
        pub const CRYPTO_EX_INDEX_SSL: c_int = 1;
        pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 2;
    }
}
cfg_if! {
    if #[cfg(any(ossl110, libressl271))] {
        extern "C" {
            pub fn OpenSSL_version_num() -> c_ulong;
            pub fn OpenSSL_version(key: c_int) -> *const c_char;
@@ -64,7 +70,7 @@ pub type CRYPTO_EX_free = unsafe extern "C" fn(
    argp: *mut c_void,
);
extern "C" {
    #[cfg(ossl110)]
    #[cfg(any(ossl110, libressl))]
    pub fn CRYPTO_get_ex_new_index(
        class_index: c_int,
        argl: c_long,
+4 −0
Original line number Diff line number Diff line
@@ -46,6 +46,10 @@ fn main() {
            println!("cargo:rustc-cfg=libressl270");
        }

        if version >= 0x2_07_01_00_0 {
            println!("cargo:rustc-cfg=libressl271");
        }

        if version >= 0x2_07_03_00_0 {
            println!("cargo:rustc-cfg=libressl273");
        }
+6 −3
Original line number Diff line number Diff line
@@ -3833,7 +3833,12 @@ cfg_if! {
cfg_if! {
    if #[cfg(any(ossl110, libressl291))] {
        use ffi::{TLS_method, DTLS_method};

    } else {
        use ffi::{SSLv23_method as TLS_method, DTLSv1_method as DTLS_method};
    }
}
cfg_if! {
    if #[cfg(ossl110)] {
        unsafe fn get_new_idx(f: ffi::CRYPTO_EX_free) -> c_int {
            ffi::CRYPTO_get_ex_new_index(
                ffi::CRYPTO_EX_INDEX_SSL_CTX,
@@ -3856,8 +3861,6 @@ cfg_if! {
            )
        }
    } else {
        use ffi::{SSLv23_method as TLS_method, DTLSv1_method as DTLS_method};

        unsafe fn get_new_idx(f: ffi::CRYPTO_EX_free) -> c_int {
            ffi::SSL_CTX_get_ex_new_index(0, ptr::null_mut(), None, None, Some(f))
        }
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
use std::ffi::CStr;

cfg_if! {
    if #[cfg(ossl110)] {
    if #[cfg(any(ossl110, libressl271))] {
        use ffi::{
            OPENSSL_VERSION, OPENSSL_CFLAGS, OPENSSL_BUILT_ON, OPENSSL_PLATFORM, OPENSSL_DIR,
            OpenSSL_version_num, OpenSSL_version,