diff options
| author | Steven Fackler <[email protected]> | 2018-08-31 21:32:36 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-08-31 21:32:36 -0700 |
| commit | aa5cfbe23972894364418d6653530ff1dcdc90a0 (patch) | |
| tree | 7b6fcfdc2372e3bf1c936bbb2762434122489e2d /openssl/src/ssl/callbacks.rs | |
| parent | Bump Appveyor test versions (diff) | |
| parent | Fix lookup errors with SNI callback. (diff) | |
| download | rust-openssl-aa5cfbe23972894364418d6653530ff1dcdc90a0.tar.xz rust-openssl-aa5cfbe23972894364418d6653530ff1dcdc90a0.zip | |
Merge pull request #982 from sfackler/fix-sni-callback
Fix lookup errors with SNI callback.
Diffstat (limited to 'openssl/src/ssl/callbacks.rs')
| -rw-r--r-- | openssl/src/ssl/callbacks.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/openssl/src/ssl/callbacks.rs b/openssl/src/ssl/callbacks.rs index f9a5aa09..c9779416 100644 --- a/openssl/src/ssl/callbacks.rs +++ b/openssl/src/ssl/callbacks.rs @@ -109,7 +109,8 @@ where let ssl = SslRef::from_ptr_mut(ssl); let callback_idx = SslContext::cached_ex_index::<F>(); - let callback = ssl.ssl_context() + let callback = ssl + .ssl_context() .ex_data(callback_idx) .expect("BUG: psk callback missing") as *const F; let identity = if identity != ptr::null() { @@ -152,16 +153,13 @@ where } } -pub extern "C" fn raw_sni<F>(ssl: *mut ffi::SSL, al: *mut c_int, _arg: *mut c_void) -> c_int +pub extern "C" fn raw_sni<F>(ssl: *mut ffi::SSL, al: *mut c_int, arg: *mut c_void) -> c_int where F: Fn(&mut SslRef, &mut SslAlert) -> Result<(), SniError> + 'static + Sync + Send, { unsafe { let ssl = SslRef::from_ptr_mut(ssl); - let callback = ssl - .ssl_context() - .ex_data(SslContext::cached_ex_index::<F>()) - .expect("BUG: sni callback missing") as *const F; + let callback = arg as *const F; let mut alert = SslAlert(*al); let r = (*callback)(ssl, &mut alert); |