• src/ssh/TODO.md ssh-conn.c ssh-trans.c src/ssh/test/CMakeLists.txt tes

    From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Mar 27 14:34:15 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7839289dc562f7e958d6a132
    Modified Files:
    src/ssh/TODO.md ssh-conn.c ssh-trans.c src/ssh/test/CMakeLists.txt test_conn.c test_transport.c
    Log Message:
    Fix 3 bugs: recv rekey termination, bytebuf window drift, close item 81 (items 15, 74, 81)

    Item 15: recv_packet_raw() terminated the session on DSSH_ERROR_REKEY_NEEDED, asymmetric with send_packet() which correctly exempts it. Fixed to match.

    Item 74: demux_dispatch() ignored dssh_bytebuf_write() return value,
    deducting full dlen from local_window even on partial writes. Window accounting drifted, eventually starving the channel. Also capped maybe_replenish_window() by free buffer space so WINDOW_ADJUST never
    grants more than the buffers can absorb.

    Item 81: Closed as not-a-bug. The single demux thread serializes packet processing; the accept queue only grows while the app controls drain rate
    via dssh_session_accept().

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

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