• src/ssh/ssh-conn.c ssh-trans.c src/ssh/test/dssh_test_internal.h test_

    From Deucе@VERT to Git commit to main/sbbs/master on Tue Mar 24 20:58:43 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0d52ede219b6cf4b0b67e348
    Modified Files:
    src/ssh/ssh-conn.c ssh-trans.c src/ssh/test/dssh_test_internal.h test_auth.c test_conn.c test_transport.c
    Log Message:
    Add all remaining easy coverage tests

    Transport tests:
    - first_name: basic, single entry, small buffer (clamp path)
    - register/two_kex, two_comp, two_lang (tail->next assignment)
    - kexinit/peer_trunc_namelist (SKIP — needs bridge infrastructure)

    Auth client tests:
    - get_methods FAILURE: truncated, methods_len > payload, control char
    - get_methods unexpected msg type
    - password CHANGEREQ: no callback, truncated prompt header,
    truncated prompt data, truncated lang
    - password unexpected msg type
    - SERVICE_ACCEPT unexpected msg type

    Conn tests:
    - send_eof already sent (direct call via DSSH_TESTABLE)
    - send_close already sent
    - maybe_replenish_window after EOF (no-op path)
    - maybe_replenish_window with low window (triggers WINDOW_ADJUST)
    - window underflow to zero via demux

    Infrastructure:
    - Expose send_eof, send_close, send_window_adjust,
    maybe_replenish_window, first_name as DSSH_TESTABLE
    - Add pipe-close to crafted-response server threads to prevent
    client read() hangs

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

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