https://gitlab.synchro.net/main/sbbs/-/commit/b0455509ae102252c4b5f605
Modified Files:
src/sbbs3/sexyz.c
Log Message:
sexyz: supply the bulk receive callback
recv_byte() already hands out bytes from a 64 KB inbuf, so a span fetch is
the same loop without the per-byte call: copy while the engine's table says
the byte is plain, stop before the one that is not. A 256 MiB localhost receive goes from 113.4 to 280.3 MB/s and from 2.36 to 0.67 CPU-seconds,
which is level with zmtx/zmrx 2.02 and above lrz's 208.7 at 1.28.
The span path stays disabled in telnet mode, where the IAC state machine in recv_byte() has to inspect every byte. It is off by default anyway for a
stdio session, which is how the BBS invokes sexyz for rlogin, SSH and raw connections.
Version to 3.6 for the zmodem.c 2.7 receive work; the startup banner prints only sexyz's own revision, so it has to move to keep a build identifiable without "sexyz v".
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net