• src/sbbs3/sexyz.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Aug 24 20:32:03 2026
    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) <[email protected]>

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