Bound forwarded stream buffering
This commit is contained in:
@@ -189,7 +189,7 @@ struct ClientState {
|
||||
pending: VecDeque<PendingFrame>,
|
||||
last_screen: Option<vt100::Screen>,
|
||||
allowed_forwardings: Vec<ForwardingRequest>,
|
||||
stream_writers: HashMap<u64, mpsc::UnboundedSender<Vec<u8>>>,
|
||||
stream_writers: HashMap<u64, mpsc::Sender<Vec<u8>>>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
@@ -1014,7 +1014,7 @@ async fn handle_stream_open(
|
||||
}
|
||||
};
|
||||
let (mut reader, mut writer) = stream.into_split();
|
||||
let (writer_tx, mut writer_rx) = mpsc::unbounded_channel::<Vec<u8>>();
|
||||
let (writer_tx, mut writer_rx) = mpsc::channel::<Vec<u8>>(1024);
|
||||
{
|
||||
let mut locked = state.lock().expect("server state poisoned");
|
||||
let session = locked
|
||||
@@ -1096,7 +1096,7 @@ async fn handle_stream_data(
|
||||
client.stream_writers.get(&data.stream_id).cloned()
|
||||
};
|
||||
if let Some(writer) = writer {
|
||||
let _ = writer.send(data.bytes);
|
||||
let _ = writer.send(data.bytes).await;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@@ -1227,7 +1227,7 @@ async fn start_remote_forwards(
|
||||
};
|
||||
let stream_id = allocate_server_stream_id(&state);
|
||||
let (mut reader, mut writer) = stream.into_split();
|
||||
let (writer_tx, mut writer_rx) = mpsc::unbounded_channel::<Vec<u8>>();
|
||||
let (writer_tx, mut writer_rx) = mpsc::channel::<Vec<u8>>(1024);
|
||||
{
|
||||
let mut locked = state.lock().expect("server state poisoned");
|
||||
if let Some(session) = locked.sessions.get_mut(&session_name)
|
||||
|
||||
Reference in New Issue
Block a user