aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys-extras/src
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-sys-extras/src')
-rw-r--r--openssl-sys-extras/src/lib.rs16
-rw-r--r--openssl-sys-extras/src/openssl_shim.c24
2 files changed, 38 insertions, 2 deletions
diff --git a/openssl-sys-extras/src/lib.rs b/openssl-sys-extras/src/lib.rs
index a768f436..85bb4392 100644
--- a/openssl-sys-extras/src/lib.rs
+++ b/openssl-sys-extras/src/lib.rs
@@ -1,10 +1,10 @@
#![allow(non_upper_case_globals, non_snake_case)]
-#![doc(html_root_url="https://sfackler.github.io/rust-openssl/doc/v0.7.0")]
+#![doc(html_root_url="https://sfackler.github.io/rust-openssl/doc/v0.7.2")]
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 {
@@ -49,6 +49,14 @@ extern {
pub fn BIO_set_nbio(b: *mut BIO, enabled: c_long) -> c_long;
#[link_name = "BIO_set_mem_eof_return_shim"]
pub fn BIO_set_mem_eof_return(b: *mut BIO, v: c_int);
+ #[link_name = "BIO_clear_retry_flags_shim"]
+ pub fn BIO_clear_retry_flags(b: *mut BIO);
+ #[link_name = "BIO_set_retry_read_shim"]
+ pub fn BIO_set_retry_read(b: *mut BIO);
+ #[link_name = "BIO_set_retry_write_shim"]
+ pub fn BIO_set_retry_write(b: *mut BIO);
+ #[link_name = "BIO_flush"]
+ pub fn BIO_flush(b: *mut BIO) -> c_long;
pub fn SSL_CTX_set_options_shim(ctx: *mut SSL_CTX, options: c_long) -> c_long;
pub fn SSL_CTX_get_options_shim(ctx: *mut SSL_CTX) -> c_long;
pub fn SSL_CTX_clear_options_shim(ctx: *mut SSL_CTX, options: c_long) -> c_long;
@@ -65,4 +73,8 @@ 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);
}
diff --git a/openssl-sys-extras/src/openssl_shim.c b/openssl-sys-extras/src/openssl_shim.c
index 84adb47b..c3deeebc 100644
--- a/openssl-sys-extras/src/openssl_shim.c
+++ b/openssl-sys-extras/src/openssl_shim.c
@@ -91,6 +91,22 @@ void BIO_set_mem_eof_return_shim(BIO *b, int v) {
BIO_set_mem_eof_return(b, v);
}
+void BIO_clear_retry_flags_shim(BIO *b) {
+ BIO_clear_retry_flags(b);
+}
+
+void BIO_set_retry_read_shim(BIO *b) {
+ BIO_set_retry_read(b);
+}
+
+void BIO_set_retry_write_shim(BIO *b) {
+ BIO_set_retry_write(b);
+}
+
+long BIO_flush_shim(BIO *b) {
+ return BIO_flush(b);
+}
+
long SSL_CTX_set_options_shim(SSL_CTX *ctx, long options) {
return SSL_CTX_set_options(ctx, options);
}
@@ -115,6 +131,14 @@ 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);
+}
+
#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);