aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-02-19 17:25:46 +0100
committerGitHub <noreply@github.com>2026-02-19 17:25:46 +0100
commit007aa2930b5593b75ef503b97c1f83f17a3c21b2 (patch)
treed4c9a110b28e13c843336221824f0d582d3edbcb /zellij-utils/src
parentPurge `async_std` from the codebase (#4672) (diff)
downloadsl0ppij-007aa2930b5593b75ef503b97c1f83f17a3c21b2.tar.gz
sl0ppij-007aa2930b5593b75ef503b97c1f83f17a3c21b2.tar.xz
sl0ppij-007aa2930b5593b75ef503b97c1f83f17a3c21b2.zip
fix: do not attempt to reconnect from the web if kicked from the session (#4730)
* fix: do not attempt to reconnect from the web if kicked from the session * fix: add missing protobuf definition * add pr
Diffstat (limited to 'zellij-utils/src')
-rw-r--r--zellij-utils/src/client_server_contract/common_types.proto1
-rw-r--r--zellij-utils/src/ipc.rs2
-rw-r--r--zellij-utils/src/ipc/protobuf_conversion.rs2
3 files changed, 5 insertions, 0 deletions
diff --git a/zellij-utils/src/client_server_contract/common_types.proto b/zellij-utils/src/client_server_contract/common_types.proto
index a2f74f08..59305d7a 100644
--- a/zellij-utils/src/client_server_contract/common_types.proto
+++ b/zellij-utils/src/client_server_contract/common_types.proto
@@ -791,6 +791,7 @@ enum ExitReason {
EXIT_REASON_WEB_CLIENTS_FORBIDDEN = 6;
EXIT_REASON_ERROR = 7;
EXIT_REASON_CUSTOM_EXIT_STATUS = 8;
+ EXIT_REASON_KICKED_BY_HOST = 9;
}
// Additional supporting types for Action messages
diff --git a/zellij-utils/src/ipc.rs b/zellij-utils/src/ipc.rs
index 455fd4b3..d1a6c99e 100644
--- a/zellij-utils/src/ipc.rs
+++ b/zellij-utils/src/ipc.rs
@@ -183,6 +183,7 @@ pub enum ExitReason {
CannotAttach,
Disconnect,
WebClientsForbidden,
+ KickedByHost,
CustomExitStatus(i32),
Error(String),
}
@@ -228,6 +229,7 @@ There are a few things you can try now:
"
)
},
+ Self::KickedByHost => write!(f, "Disconnected by host"),
Self::CustomExitStatus(exit_status) => write!(f, "Exit {}", exit_status),
Self::Error(e) => write!(f, "Error occurred in server:\n{}", e),
}
diff --git a/zellij-utils/src/ipc/protobuf_conversion.rs b/zellij-utils/src/ipc/protobuf_conversion.rs
index 7538b225..894bdac8 100644
--- a/zellij-utils/src/ipc/protobuf_conversion.rs
+++ b/zellij-utils/src/ipc/protobuf_conversion.rs
@@ -2279,6 +2279,7 @@ impl From<ExitReason> for ProtoExitReason {
ExitReason::CannotAttach => ProtoExitReason::CannotAttach,
ExitReason::Disconnect => ProtoExitReason::Disconnect,
ExitReason::WebClientsForbidden => ProtoExitReason::WebClientsForbidden,
+ ExitReason::KickedByHost => ProtoExitReason::KickedByHost,
ExitReason::Error(_msg) => ProtoExitReason::Error,
ExitReason::CustomExitStatus(_status) => ProtoExitReason::CustomExitStatus,
}
@@ -2295,6 +2296,7 @@ impl TryFrom<ProtoExitReason> for ExitReason {
ProtoExitReason::CannotAttach => Ok(ExitReason::CannotAttach),
ProtoExitReason::Disconnect => Ok(ExitReason::Disconnect),
ProtoExitReason::WebClientsForbidden => Ok(ExitReason::WebClientsForbidden),
+ ProtoExitReason::KickedByHost => Ok(ExitReason::KickedByHost),
ProtoExitReason::Error => Ok(ExitReason::Error("Protobuf error".to_string())),
ProtoExitReason::CustomExitStatus => Ok(ExitReason::CustomExitStatus(0)),
ProtoExitReason::Unspecified => Err(anyhow!("Unspecified exit reason")),