diff --git a/tokio-native-tls/src/lib.rs b/tokio-native-tls/src/lib.rs index 622a594..4e83c8e 100644 --- a/tokio-native-tls/src/lib.rs +++ b/tokio-native-tls/src/lib.rs @@ -348,13 +348,16 @@ impl Future for MidHandshake { s.get_mut().context = cx as *mut _ as *mut (); match s.handshake() { - Ok(stream) => Poll::Ready(Ok(TlsStream(stream))), - Err(HandshakeError::Failure(e)) => Poll::Ready(Err(e)), + Ok(mut s) => { + s.get_mut().context = null_mut(); + Poll::Ready(Ok(TlsStream(s))) + } Err(HandshakeError::WouldBlock(mut s)) => { s.get_mut().context = null_mut(); mut_self.0 = Some(s); Poll::Pending } + Err(HandshakeError::Failure(e)) => Poll::Ready(Err(e)), } } }