From 8cbab9495523992090251f950f7a0bd9afdb531c Mon Sep 17 00:00:00 2001 From: Toshit Chawda Date: Thu, 1 Aug 2024 15:59:29 -0700 Subject: [PATCH] don't send info packet if downgraded --- wisp/src/lib.rs | 23 +++++++++++++---------- wisp/src/stream.rs | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/wisp/src/lib.rs b/wisp/src/lib.rs index 928bfd8..8d54b3a 100644 --- a/wisp/src/lib.rs +++ b/wisp/src/lib.rs @@ -763,17 +763,20 @@ impl ClientMux { let (supported_extensions, extra_packet, downgraded) = if let Some(builders) = extension_builders { let x = maybe_wisp_v2(&mut read, &write, builders).await?; - write - .write_frame( - Packet::new_info( - builders - .iter() - .map(|x| x.build_to_extension(Role::Client)) - .collect(), + // if not downgraded + if !x.2 { + write + .write_frame( + Packet::new_info( + builders + .iter() + .map(|x| x.build_to_extension(Role::Client)) + .collect(), + ) + .into(), ) - .into(), - ) - .await?; + .await?; + } x } else { (Vec::new(), None, true) diff --git a/wisp/src/stream.rs b/wisp/src/stream.rs index 100926f..7233f8c 100644 --- a/wisp/src/stream.rs +++ b/wisp/src/stream.rs @@ -215,7 +215,7 @@ impl MuxStreamWrite { )) } - /// Turn the write half into one that implements futures `Sink`, consuming it. + /// Turn the write half into one that implements futures `Sink`, consuming it. pub fn into_sink(self) -> MuxStreamIoSink { MuxStreamIoSink { tx: self.into_inner_sink(),