aboutsummaryrefslogtreecommitdiff
path: root/src/server/client_transport.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-30 02:47:50 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-30 02:48:02 +0300
commit0fa6440d41c31f23ba2126e4b23bc5627705e317 (patch)
treead2fefbd69efdac78bc7b2a0c3c36f712a13d116 /src/server/client_transport.rs
parentf3da280ccc7beac0c1491578cd32e04495ae08bf (diff)
feat: add terminal session control stream
Diffstat (limited to 'src/server/client_transport.rs')
-rw-r--r--src/server/client_transport.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/client_transport.rs b/src/server/client_transport.rs
index b69490c8..c4e43e0d 100644
--- a/src/server/client_transport.rs
+++ b/src/server/client_transport.rs
@@ -314,6 +314,12 @@ pub(crate) enum ServerEvent {
},
/// A client requested read-only observation of one terminal.
ClientObserveTerminal { client_id: u64, target: String },
+ /// A client requested writable control of one terminal.
+ ClientControlTerminal {
+ client_id: u64,
+ target: String,
+ takeover: bool,
+ },
/// A direct terminal attach client requested scrollback movement.
ClientAttachScroll {
client_id: u64,
@@ -673,6 +679,13 @@ fn client_read_loop(
ClientMessage::ObserveTerminal { target } => {
ServerEvent::ClientObserveTerminal { client_id, target }
}
+ ClientMessage::ControlTerminal { target, takeover } => {
+ ServerEvent::ClientControlTerminal {
+ client_id,
+ target,
+ takeover,
+ }
+ }
ClientMessage::ClipboardImage { extension, data } => {
if data.len() > MAX_CLIPBOARD_IMAGE_PAYLOAD {
warn!(