aboutsummaryrefslogtreecommitdiff
path: root/src/server/client_endpoint_control.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-06 02:27:06 +0300
committerGitHub <noreply@github.com>2026-09-06 02:27:06 +0300
commit9e9bc8a144667a6b7debfd4f0c7a31ff0e11493a (patch)
tree03f1259f91fd9edeacfd4b904f2e84d4acf25232 /src/server/client_endpoint_control.rs
parent35b0dff96579f099e0436290085024424ffb289c (diff)
feat: manage multiple ssh machines from one client (#3670)
Diffstat (limited to 'src/server/client_endpoint_control.rs')
-rw-r--r--src/server/client_endpoint_control.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/server/client_endpoint_control.rs b/src/server/client_endpoint_control.rs
new file mode 100644
index 00000000..09970004
--- /dev/null
+++ b/src/server/client_endpoint_control.rs
@@ -0,0 +1,24 @@
+pub(crate) fn response(kind: &str, data: String) -> Option<crate::protocol::ServerMessage> {
+ (kind == crate::protocol::endpoint::HEALTH_PING_KIND).then(|| {
+ crate::protocol::ServerMessage::EndpointControl {
+ kind: crate::protocol::endpoint::HEALTH_PONG_KIND.into(),
+ data,
+ }
+ })
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn health_ping_echoes_a_pong_without_entering_server_state() {
+ let pong = response(crate::protocol::endpoint::HEALTH_PING_KIND, "probe".into()).unwrap();
+ assert!(matches!(
+ pong,
+ crate::protocol::ServerMessage::EndpointControl { kind, data }
+ if kind == crate::protocol::endpoint::HEALTH_PONG_KIND && data == "probe"
+ ));
+ assert!(response("future.control", String::new()).is_none());
+ }
+}