CH-J Toolsspráva serverů přes SSH
Menu
Vydané zdroje

CH-J Tools

Procházejte adresáře a soubory konkrétního vydání aplikace.

Stáhnout zdroje ZIP
CH-J / Server Manager 872 souborů
core-20261030T220507Z-61e4558d889f Přidáno: · Sestaveno:
ssh.rs Přidáno: Datum není evidováno 2,4 KB · 51 řádků
Kód Stáhnout soubor
1//! SSH session commands for the main window (terminal).
3use super::{envelope, main_core, text, CommandResult};
4use crate::core::app::CoreSlot;
5use serde_json::{json, Value};
6use tauri::{State, Webview};
8#[tauri::command]
9pub async fn core_ssh_list(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {
10 Ok(Value::Array(main_core(&webview, &slot)?.services.sessions.list()))
13#[tauri::command]
14pub async fn core_ssh_connect(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {
15 let core = main_core(&webview, &slot)?;
16 let payload = super::payload(payload);
17 Ok(envelope(core.services.sessions.connect(&payload).await, "SSH_OPERATION_FAILED", None))
20#[tauri::command]
21pub async fn core_ssh_trust_host_key(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {
22 let core = main_core(&webview, &slot)?;
23 let payload = super::payload(payload);
24 Ok(envelope(core.services.sessions.trust_pending(&payload), "SSH_OPERATION_FAILED", None))
27#[tauri::command]
28pub async fn core_ssh_disconnect(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {
29 let core = main_core(&webview, &slot)?;
30 let payload = super::payload(payload);
31 Ok(envelope(Ok(core.services.sessions.disconnect(text(&payload, "sessionId"), "user").await), "SSH_OPERATION_FAILED", None))
34#[tauri::command]
35pub async fn core_ssh_resize(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {
36 let core = main_core(&webview, &slot)?;
37 let payload = super::payload(payload);
38 Ok(envelope(core.services.sessions.resize(text(&payload, "sessionId"), payload.get("cols"), payload.get("rows")), "SSH_OPERATION_FAILED", None))
41/// Synchronous on purpose: Tauri runs sync commands in IPC order, so keystrokes stay ordered.
42#[tauri::command]
43pub fn core_ssh_input(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {
44 let core = main_core(&webview, &slot)?;
45 let payload = super::payload(payload);
46 let data = payload.get("data").map(|d| d.as_str().map(str::to_string).unwrap_or_else(|| if d.is_null() { String::new() } else { d.to_string() })).unwrap_or_default();
47 if let Err(error) = core.services.sessions.write(text(&payload, "sessionId"), &data) {
48 core.logger.warn("IPC event was rejected.", json!({ "channel": "ssh:input", "message": error.message, "code": error.code }));
49 }
50 Ok(Value::Null)
SHA-25671f504b50106aec15e0f01d0dc1b5543df6d3f3ba70deb3d49acaba98a9d41ec

CH-J Proprietary Software License 1.14 · Zdroje jsou zveřejněny pod CH-J Proprietary Software License 1.14. Jejich dostupnost nemění licenční podmínky ani neposkytuje další oprávnění.

SHA-256 archivu77380d4805485ffa4027fbe7858b5836f197a4aa9d52358a43e2d12d018744df
Soubory