• src/ssh/TODO.md deucessh-auth.h server.c ssh-auth.c ssh-internal.h ssh

    From Deucе@VERT to Git commit to main/sbbs/master on Thu Mar 26 05:47:34 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6afdd20feabc24162d9e7086
    Modified Files:
    src/ssh/TODO.md deucessh-auth.h server.c ssh-auth.c ssh-internal.h ssh.c
    Log Message:
    Add dssh_auth_set_banner() API; sarcastic example server

    New public API: dssh_auth_set_banner(sess, message, language)
    queues a banner to be sent before the next auth response.
    Callbacks can set new banners dynamically. NULL message cancels.
    Empty message rejected with DSSH_ERROR_INVALID per RFC 4252 s5.4.
    Banners flushed in send_auth_success and send_auth_failure,
    and at the top of the auth loop (for the initial pre-auth banner).
    Pending banner freed on session cleanup.

    Example server enhancements:
    - Welcome banner before auth
    - Sarcastic per-callback banners showing username/password/key info
    - 75% random auth rejection with 16 quips
    - publickey auth support with same rejection odds
    - Debug, unimplemented, and global request callbacks registered
    - Banner logging via set_banner() helper
    - All session callbacks now wired up

    TODO: note auth/client/pw_changereq_send_fail timing flake.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net