From 26745882370793fdbe02b0a195abdc7bbef28394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AF=92=E5=BD=A4?= Date: Sat, 9 Mar 2024 23:43:02 +0800 Subject: [PATCH] fix(connect): not negotiate h2 when using native-tls backend --- src/connect.rs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/connect.rs b/src/connect.rs index 68ef26924..4e69c3cb8 100644 --- a/src/connect.rs +++ b/src/connect.rs @@ -807,25 +807,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 } }