Add Serialized SSH Administrative Console
This commit is contained in:
+26
-12
@@ -50,6 +50,15 @@ static const char *auth_method_name(user_auth_method_t method)
|
||||
: method == USER_AUTH_METHOD_SSH_PUBLIC_KEY ? "public-key" : "unknown";
|
||||
}
|
||||
|
||||
static const char *route_name(ssh_transport_session_route_t route)
|
||||
{
|
||||
return route == SSH_TRANSPORT_ROUTE_BROKER
|
||||
? "broker"
|
||||
: route == SSH_TRANSPORT_ROUTE_ADMIN_CONSOLE
|
||||
? "admin-console"
|
||||
: "none";
|
||||
}
|
||||
|
||||
static int print_sessions(const ssh_transport_snapshot_t *snapshot)
|
||||
{
|
||||
printf("SSH sessions: active=%" PRIu32 "/%u\n",
|
||||
@@ -60,21 +69,22 @@ static int print_sessions(const ssh_transport_snapshot_t *snapshot)
|
||||
continue;
|
||||
}
|
||||
printf(" id=%" PRIu32 " slot=%u peer=%s state=%s auth=%s account=%s"
|
||||
" user-role=%s method=%s broker=%" PRIu32
|
||||
" broker-role=%s rx-pending=%s tx-pending=%s closing=%s\n",
|
||||
" user-role=%s method=%s route=%s broker=%" PRIu32
|
||||
" broker-role=%s admin-command=%s admin-output=%" PRIu32
|
||||
" rx-pending=%s tx-pending=%s closing=%s\n",
|
||||
session->session_id, (unsigned int)index, session->peer,
|
||||
state_name(session->state), session->authenticated ? "yes" : "no",
|
||||
session->principal_valid ? session->username : "-",
|
||||
session->principal_valid
|
||||
? user_role_to_string(session->user_role)
|
||||
: "-",
|
||||
session->principal_valid
|
||||
? auth_method_name(session->auth_method)
|
||||
: "-",
|
||||
session->broker_client_id,
|
||||
session->broker_client_id == SESSION_BROKER_NO_CLIENT
|
||||
? "unattached"
|
||||
: (session->writer ? "writer" : "observer"),
|
||||
session->principal_valid ? user_role_to_string(session->user_role) : "-",
|
||||
session->principal_valid ? auth_method_name(session->auth_method) : "-",
|
||||
route_name(session->route), session->broker_client_id,
|
||||
session->route == SSH_TRANSPORT_ROUTE_ADMIN_CONSOLE
|
||||
? "n/a"
|
||||
: (session->broker_client_id == SESSION_BROKER_NO_CLIENT
|
||||
? "unattached"
|
||||
: (session->writer ? "writer" : "observer")),
|
||||
session->admin_command_pending ? "running" : "idle",
|
||||
session->admin_output_pending,
|
||||
session->rx_pending ? "yes" : "no",
|
||||
session->tx_pending ? "yes" : "no",
|
||||
session->close_requested ? "yes" : "no");
|
||||
@@ -135,6 +145,10 @@ static int show_counters(void)
|
||||
counter->disconnections, counter->writer_requests,
|
||||
counter->writer_grants, counter->writer_denials,
|
||||
counter->writer_revocations);
|
||||
printf("Admin console: admissions=%" PRIu64 " admission-failures=%" PRIu64
|
||||
" input-backpressure=%" PRIu64 "\n",
|
||||
counter->admin_console_admissions, counter->admin_console_admission_failures,
|
||||
counter->admin_console_input_rejections);
|
||||
printf("Stream: rx=%" PRIu64 " accepted=%" PRIu64
|
||||
" rejected=%" PRIu64 " tx=%" PRIu64
|
||||
" io-failures=%" PRIu64 " session-revocations=%" PRIu64 "\n",
|
||||
|
||||
Reference in New Issue
Block a user