aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys-extras/src
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-12-15 19:22:39 -0800
committerSteven Fackler <[email protected]>2015-12-15 19:22:39 -0800
commit514c5ec4150eb6dd35535e780888e42f236f8cfd (patch)
treee90e96a63c6545131d5b82719c90854a62da79ce /openssl-sys-extras/src
parentDocument unused variant (diff)
parentIncrement SSL_CTX's reference count in Ssl::get_ssl_context() (diff)
downloadrust-openssl-514c5ec4150eb6dd35535e780888e42f236f8cfd.tar.xz
rust-openssl-514c5ec4150eb6dd35535e780888e42f236f8cfd.zip
Merge pull request #309 from Geal/master
Add support for Server Name indication (SNI) on the server's side
Diffstat (limited to 'openssl-sys-extras/src')
-rw-r--r--openssl-sys-extras/src/lib.rs8
-rw-r--r--openssl-sys-extras/src/openssl_shim.c13
2 files changed, 20 insertions, 1 deletions
diff --git a/openssl-sys-extras/src/lib.rs b/openssl-sys-extras/src/lib.rs
index 3c114726..f8751d18 100644
--- a/openssl-sys-extras/src/lib.rs
+++ b/openssl-sys-extras/src/lib.rs
@@ -4,7 +4,7 @@
extern crate openssl_sys;
extern crate libc;
-use libc::{c_int, c_uint, c_long, c_char};
+use libc::{c_int, c_uint, c_long, c_char, c_void};
use openssl_sys::{HMAC_CTX, EVP_MD, ENGINE, SSL_CTX, BIO, X509, stack_st_X509_EXTENSION, SSL, DH};
macro_rules! import_options {
@@ -73,4 +73,10 @@ extern {
pub fn SSL_CTX_set_tmp_dh(s: *mut SSL, dh: *const DH) -> c_long;
#[link_name = "X509_get_extensions_shim"]
pub fn X509_get_extensions(x: *mut X509) -> *mut stack_st_X509_EXTENSION;
+ #[link_name = "SSL_CTX_set_tlsext_servername_callback_shim"]
+ pub fn SSL_CTX_set_tlsext_servername_callback(ssl: *mut SSL_CTX, callback: Option<extern fn()>);
+ #[link_name = "SSL_CTX_set_tlsext_servername_arg_shim"]
+ pub fn SSL_CTX_set_tlsext_servername_arg(ssl: *mut SSL_CTX, arg: *const c_void);
+ #[link_name = "SSL_CTX_increment_refcount_shim"]
+ pub fn SSL_CTX_increment_refcount(ssl: *mut SSL_CTX) -> c_long;
}
diff --git a/openssl-sys-extras/src/openssl_shim.c b/openssl-sys-extras/src/openssl_shim.c
index cc42fbf4..3acd3d50 100644
--- a/openssl-sys-extras/src/openssl_shim.c
+++ b/openssl-sys-extras/src/openssl_shim.c
@@ -131,6 +131,19 @@ long SSL_CTX_set_tmp_dh_shim(SSL_CTX *ctx, DH *dh) {
return SSL_CTX_set_tmp_dh(ctx, dh);
}
+long SSL_CTX_set_tlsext_servername_callback_shim(SSL_CTX *ctx, int (*callback)(SSL_CTX *, int *, void*)) {
+ return SSL_CTX_set_tlsext_servername_callback(ctx, callback);
+}
+
+long SSL_CTX_set_tlsext_servername_arg_shim(SSL_CTX *ctx, void* arg) {
+ return SSL_CTX_set_tlsext_servername_arg(ctx, arg);
+}
+
+long SSL_CTX_increment_refcount_shim(SSL_CTX *ctx) {
+ int i = CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
+ return i;
+}
+
#if OPENSSL_VERSION_NUMBER >= 0x10002000L
int SSL_CTX_set_ecdh_auto_shim(SSL_CTX *ctx, int onoff) {
return SSL_CTX_set_ecdh_auto(ctx, onoff);