• src/ssh/test/test_thread_errors.csrc/ssh/TODO.md ssh-conn.c ssh-intern

    From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Mar 27 20:57:48 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e06d0205caf91969f69f94f9
    Added Files:
    src/ssh/test/test_thread_errors.c
    Modified Files:
    src/ssh/TODO.md ssh-conn.c ssh-internal.h ssh-trans.c ssh.c src/ssh/test/CMakeLists.txt dssh_test_ossl.c dssh_test_ossl.h
    Log Message:
    Check all C11 threading return values via dssh_thrd_check wrapper (items 85, 86)

    133 unchecked mtx_lock/mtx_unlock/cnd_wait/cnd_timedwait/cnd_broadcast/ cnd_signal calls across ssh-conn.c (113), ssh-trans.c (10), and ssh.c (13)
    now go through dssh_thrd_check(), which calls set_terminate() on failure. Library code ignores the return; the wrapper handles termination internally. set_terminate() checks returns to skip blocks whose lock was not acquired (best-effort wakeup, no recursion since terminate is set first).

    Test injection uses a separate countdown (dssh_test_thrd_fail_after) from
    the OpenSSL countdown. 6 new injection wrappers, 6 new tests (48 CTest
    entries across 8 algo variants). Demux thread excluded from countdown.

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

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