Bound forwarded stream buffering
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled

This commit is contained in:
DuProcess
2026-06-13 15:43:42 -04:00
parent 6a0f12c59e
commit 64b00783fd
2 changed files with 19 additions and 14 deletions
+4 -4
View File
@@ -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)