diff options
| author | Steven Fackler <[email protected]> | 2016-07-01 18:31:47 -0400 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2016-07-01 18:31:47 -0400 |
| commit | 121169c1f57bf0b1130b400d9ed6431855fb2e73 (patch) | |
| tree | d9e7e34dbf92171ce7e1da484941ba52521596f0 /openssl-sys-extras/src | |
| parent | Test on 1.8 (diff) | |
| download | rust-openssl-121169c1f57bf0b1130b400d9ed6431855fb2e73.tar.xz rust-openssl-121169c1f57bf0b1130b400d9ed6431855fb2e73.zip | |
Set auto retry
SSL_read returns a WANT_READ after a renegotiation by default which ends
up bubbling up as a weird BUG error. Tell OpenSSL to just do the read
again.
Diffstat (limited to 'openssl-sys-extras/src')
| -rw-r--r-- | openssl-sys-extras/src/lib.rs | 2 | ||||
| -rw-r--r-- | openssl-sys-extras/src/openssl_shim.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/openssl-sys-extras/src/lib.rs b/openssl-sys-extras/src/lib.rs index 8b13ade9..c71ad073 100644 --- a/openssl-sys-extras/src/lib.rs +++ b/openssl-sys-extras/src/lib.rs @@ -60,6 +60,8 @@ extern { 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; + #[link_name = "SSL_CTX_set_mode_shim"] + pub fn SSL_CTX_set_mode(ctx: *mut SSL_CTX, options: c_long) -> c_long; #[link_name = "SSL_CTX_add_extra_chain_cert_shim"] pub fn SSL_CTX_add_extra_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> c_long; #[link_name = "SSL_CTX_set_read_ahead_shim"] diff --git a/openssl-sys-extras/src/openssl_shim.c b/openssl-sys-extras/src/openssl_shim.c index 11df1ca6..db2a8786 100644 --- a/openssl-sys-extras/src/openssl_shim.c +++ b/openssl-sys-extras/src/openssl_shim.c @@ -93,6 +93,10 @@ long SSL_CTX_clear_options_shim(SSL_CTX *ctx, long options) { return SSL_CTX_clear_options(ctx, options); } +long SSL_CTX_set_mode_shim(SSL_CTX *ctx, long options) { + return SSL_CTX_set_mode(ctx, options); +} + long SSL_CTX_add_extra_chain_cert_shim(SSL_CTX *ctx, X509 *x509) { return SSL_CTX_add_extra_chain_cert(ctx, x509); } |