https://gitlab.synchro.net/main/sbbs/-/commit/840c20c54e883d611d4ee3ec
Modified Files:
src/ssh/TODO.md deucessh-auth.h ssh-auth.c ssh-conn.c ssh.c src/ssh/test/CMakeLists.txt test_auth.c
Log Message:
Fix 5 bugs: data races, double-start, auth disconnect, cnd_broadcast (items 58-73)
- Move channel flag pre-checks (open/eof_sent/close_received) into
dssh_conn_send_data() and dssh_conn_send_extended_data() under buf_mtx,
fixing data races in write paths (items 58, 59)
- Change dssh_session_start() double-start guard from demux_running to
conn_initialized; clear flag in dssh_session_stop() (item 68)
- Add DSSH_AUTH_DISCONNECT callback return value so server auth callbacks
can reject and disconnect clients (item 70)
- Replace all cnd_signal(poll_cnd) with cnd_broadcast to wake all waiters
when multiple threads poll the same channel (item 73)
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net