https://gitlab.synchro.net/main/sbbs/-/commit/f918985d01363d053bcff9fb
Modified Files:
src/ssh/server.c ssh-conn.c
Log Message:
Fix setup mailbox race: demux could drop channel requests
The demux thread delivered setup-mode messages (pty-req, shell, etc.)
via a single-slot mailbox without waiting for the accept loop to
consume the previous message. When multiple CHANNEL_REQUESTs arrived
in rapid succession (e.g. auth-agent-req, pty-req, shell), later
messages overwrote earlier ones — typically dropping pty-req.
Fix: demux now waits on poll_cnd while setup_ready is true before
writing the next message. setup_recv signals poll_cnd after consuming
so the demux can proceed. Verified with OpenSSH 9.9 which sends
auth-agent-req + pty-req + shell back-to-back.
Server: add debug REQ trace line in channel request callback.
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net