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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user