BBS: TELESC.NET.BR Assunto: src/ssh/audit-design.md deucessh-conn.h ssh-conn.c ssh-internal.h src/ De: Deuc¨ Data: Mon, 30 Mar 2026 10:39:12 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/7440b2f2b9cfdd7b4d0ab3ad Modified Files: src/ssh/audit-design.md deucessh-conn.h ssh-conn.c ssh-internal.h src/ssh/test/test_chan.c Log Message: Fix audit items 4-5, 7-10 + event queue init + ZC window fix Audit conformance fixes against design-channel-io-api.md: - Item 4: term field changed from char[64] to char* with strdup (no truncation, matches RFC 4254 unbounded string) - Item 5: add dssh_chan_get_pty() returning const dssh_chan_params* - Item 7: add cb_mtx per-channel mutex protecting callback pointers; init/destroy in all channel lifecycle paths - Item 8: in_zc_rx guard added to shutwr, close, send_signal, send_window_change, send_break (was only on zc_getbuf/zc_send) - Item 9: ZC callback WINDOW_ADJUST now sent (ZC mode only; stream mode uses maybe_replenish_window after app reads) - Item 10: dssh_session_set_event_cb stores in session struct, propagated to channels at open/accept time Additional fixes found during testing: - Event queue initialized before channel registration in all three open functions (dssh_chan_open, dssh_chan_zc_open, dssh_chan_accept) to prevent SIGFPE when demux dispatches EOF/CLOSE during reject - ZC WINDOW_ADJUST restricted to DSSH_IO_ZC (was firing for stream mode too, breaking window accounting in demux truncation tests) Remaining deliberate deviations documented in audit-design.md: - Item 6: remote_window uses buf_mtx not atomic (correct, optimization) - Item 11: design doc inconsistency in event position semantics - Item 12: accept-loops-on-reject deferred (needs demux sync work) Co-Authored-By: Claude Opus 4.6 (1M context)n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]