diff --git a/src/connect.rs b/src/connect.rs index c9418265d..ac0e07ffd 100644 --- a/src/connect.rs +++ b/src/connect.rs @@ -811,25 +811,41 @@ mod native_tls_conn { impl Connection for NativeTlsConn>> { fn connected(&self) -> Connected { - self.inner + let connected = self + .inner .inner() .get_ref() .get_ref() .get_ref() .inner() - .connected() + .connected(); + #[cfg(feature = "native-tls-alpn")] + match self.inner.inner().get_ref().negotiated_alpn().ok() { + Some(Some(alpn_protocol)) if alpn_protocol == b"h2" => connected.negotiated_h2(), + _ => connected, + } + #[cfg(not(feature = "native-tls-alpn"))] + connected } } impl Connection for NativeTlsConn>>> { fn connected(&self) -> Connected { - self.inner + let connected = self + .inner .inner() .get_ref() .get_ref() .get_ref() .inner() - .connected() + .connected(); + #[cfg(feature = "native-tls-alpn")] + match self.inner.inner().get_ref().negotiated_alpn().ok() { + Some(Some(alpn_protocol)) if alpn_protocol == b"h2" => connected.negotiated_h2(), + _ => connected, + } + #[cfg(not(feature = "native-tls-alpn"))] + connected } }