fix twisp extension

This commit is contained in:
Toshit Chawda 2024-09-27 16:11:13 -07:00
parent 5e4461d61d
commit 95d7b101a0
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
3 changed files with 9 additions and 4 deletions

View file

@ -221,7 +221,7 @@ pub async fn handle_wisp(stream: WispResult, id: String) -> anyhow::Result<()> {
let extensions = match extensions { let extensions = match extensions {
Some(mut exts) => { Some(mut exts) => {
exts.push(twisp::new_ext(twisp_map.clone())); exts.add_extension(twisp::new_ext(twisp_map.clone()));
Some(exts) Some(exts)
}, },
None => { None => {

View file

@ -10,7 +10,7 @@ use pty_process::{Pty, Size};
use tokio::{io::copy, process::Child, select, sync::Mutex}; use tokio::{io::copy, process::Child, select, sync::Mutex};
use tokio_util::compat::{FuturesAsyncReadCompatExt, FuturesAsyncWriteCompatExt}; use tokio_util::compat::{FuturesAsyncReadCompatExt, FuturesAsyncWriteCompatExt};
use wisp_mux::{ use wisp_mux::{
extensions::{AnyProtocolExtension, ProtocolExtension, ProtocolExtensionBuilder}, extensions::{AnyProtocolExtension, ProtocolExtension, ProtocolExtensionBuilder, AnyProtocolExtensionBuilder},
ws::{LockedWebSocketWrite, WebSocketRead}, ws::{LockedWebSocketWrite, WebSocketRead},
MuxStreamAsyncRead, MuxStreamAsyncWrite, WispError, MuxStreamAsyncRead, MuxStreamAsyncWrite, WispError,
}; };
@ -120,8 +120,8 @@ pub fn new_map() -> TwispMap {
Arc::new(Mutex::new(HashMap::new())) Arc::new(Mutex::new(HashMap::new()))
} }
pub fn new_ext(map: TwispMap) -> Box<dyn ProtocolExtensionBuilder + Send + Sync> { pub fn new_ext(map: TwispMap) -> AnyProtocolExtensionBuilder {
Box::new(TWispServerProtocolExtensionBuilder(map)) AnyProtocolExtensionBuilder::new(TWispServerProtocolExtensionBuilder(map))
} }
pub async fn handle_twisp( pub async fn handle_twisp(

View file

@ -263,6 +263,11 @@ impl WispV2Extensions {
closure: Box::new(closure), closure: Box::new(closure),
} }
} }
/// Add a Wisp V2 extension builder to the settings struct.
pub fn add_extension(&mut self, extension: AnyProtocolExtensionBuilder) {
self.builders.push(extension);
}
} }
/// Server-side multiplexor. /// Server-side multiplexor.