TNT/include
m1ngsama b5f9a17290 refactor: extract bootstrap module (PR2-M4)
Move the per-connection SSH bootstrap pipeline -- key exchange, auth,
channel open + PTY/shell-or-exec request, and the hand-off into a
client_t -- out of ssh_server.c into a dedicated module.

Migrated to bootstrap.{c,h}:
- session_context_t (now private to bootstrap.c)
- accepted_session_t (declared in bootstrap.h, the IPC envelope from
  the accept loop into the bootstrap thread)
- TNT_ACCESS_TOKEN handling: g_access_token + bootstrap_init()
- constant_time_strcmp (auth-only utility)
- bootstrap_peer_ip (peer IP read from libssh fd)
- auth_password / auth_none / auth_pubkey
- destroy_session_context, cleanup_failed_session
- channel_open_request_session, channel_pty_request,
  channel_pty_window_change, channel_shell_request, channel_exec_request
- setup_session_channel_callbacks
- bootstrap_run (formerly bootstrap_client_session, the pthread entry)

Stayed in ssh_server.c:
- accept loop in ssh_server_start (now calls bootstrap_peer_ip and
  pthread_create(bootstrap_run))
- ssh_server_init (now calls ratelimit_init() + bootstrap_init() +
  reads only g_idle_timeout / TNT_BIND_ADDR / TNT_SSH_LOG_LEVEL)
- client_send/printf/addref/release, notify_mentions
- client_channel_window_change/eof/close (post-bootstrap, target client_t)
- client_install_channel_callbacks (renamed from
  install_client_channel_callbacks, now non-static and exposed via
  ssh_server.h so bootstrap.c can install them on the new client_t)
- read_username, handle_key, client_handle_session (will move to
  input.c in PR2-M5)
- setup_host_key, ssh_server_start_time

Two helpers also lifted: sanitize_terminal_size moved to common.c (used
by the bootstrap PTY callback and the post-bootstrap window-change
callback), and is_valid_username already lived there from M2.

ssh_server.c shrinks from 1513 to 1026 lines (-487).
Behaviour is preserved: implementations are byte-for-byte the same.
2026-05-17 09:47:28 +08:00
..
.gitkeep Initial commit 2025-07-01 09:00:00 +08:00
bootstrap.h refactor: extract bootstrap module (PR2-M4) 2026-05-17 09:47:28 +08:00
chat_room.h feat: consolidated improvements, manpage, and deployment prep 2026-04-19 17:49:06 +08:00
commands.h refactor: extract commands module (PR2-M3) 2026-05-17 09:26:48 +08:00
common.h refactor: extract bootstrap module (PR2-M4) 2026-05-17 09:47:28 +08:00
exec.h refactor: extract exec module (PR2-M2) 2026-05-17 08:49:58 +08:00
message.h feat: add :last, :search, :mute-joins commands and MOTD support 2026-04-23 12:03:27 +08:00
ratelimit.h refactor: extract ratelimit module (PR2-M1) 2026-05-16 23:06:56 +08:00
ssh_server.h refactor: extract bootstrap module (PR2-M4) 2026-05-17 09:47:28 +08:00
tui.h Replace telnet with SSH and fix full-screen display 2025-11-24 16:48:14 +08:00
utf8.h refactor: stabilize SSH runtime and add exec interface 2026-03-10 18:52:20 +08:00