Add Typed SSH Service Controls

Provide admin-only SSH status plus generation-safe start, stop, and
single-session disconnect operations through the bounded dispatcher.
Include
Settings UI coverage, lifecycle safeguards, and host-side regression
tests.
This commit is contained in:
2026-09-13 16:07:04 +02:00
parent 7ccc8799e9
commit 737bd29f9e
25 changed files with 1049 additions and 47 deletions
+20
View File
@@ -99,6 +99,26 @@ typedef struct {
ssh_transport_counters_t counters;
} ssh_transport_snapshot_t;
typedef enum {
SSH_TRANSPORT_MANAGE_START = 0,
SSH_TRANSPORT_MANAGE_STOP,
SSH_TRANSPORT_MANAGE_DISCONNECT,
} ssh_transport_management_action_t;
typedef struct {
uint32_t generation;
bool running;
bool transitioning;
ssh_transport_session_snapshot_t sessions[SSH_TRANSPORT_MAX_SESSIONS];
} ssh_transport_management_snapshot_t;
/* Compact published state only; no wolfSSH calls or task-stack scan. */
esp_err_t ssh_transport_get_management_snapshot(ssh_transport_management_snapshot_t *snapshot);
/* Dispatcher-only conditional admission; success on disconnect means owner notified,
* not peer receipt/cleanup. Lifecycle timeout does not cancel admitted work. */
esp_err_t ssh_transport_manage_current(ssh_transport_management_action_t action,
uint32_t target, uint32_t generation);
/* Installs wolfCrypt RNG/PSRAM hooks and starts the sole wolfSSH owner task. */
esp_err_t ssh_transport_init(void);
esp_err_t ssh_transport_start(void);