• src/sbbs3/zmodem.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Feb 13 15:14:08 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/12ac1fc4c828739d5a76e66b
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Accept hex headers terminated with 0x8A

    Some ZMODEM implementations set the high bit (even parity?) when sending this '\n' terminator.
    As reported via IRC:
    <Keyop> sexyz: !zmodem_recv_hex_header HEX header not terminated with LF: 138 (8Ah)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Feb 13 16:40:27 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/0f7716c038d4a6f37947f888
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Strip/ignore high (parity) bit in ZPAD, ZDLE, and hex headers

    The previous committed fix/issue raised some additional concerns about this "parity" bit:

    Something I didn't notice before from the ZMODEM spec:
    "The hex header receiving routine ignores parity."

    And looking at lrzsz's zm.c, I see it goes even further and ignores the "parity" bit on the ZPAD and ZDLE bytes proceeding the frame encoding byte as well as in the frame encoding byte itself (so ZHEX, 'B' 0x22 and 0xC2 should be treated as equivalent).

    I find it strange that some ZMODEM implementations (e.g. chuck's zshhdr()) would send the terminating LF with the even-parity bit set, but not set the even-parity flag for any of the frame content bytes. And then, expect that the parity flag may be set on incoming hex headers. I suppose it makes sense for 7-E-1 connections, but then the transmitted terminating LF would have had its parity flag set automatically (would not need to be set manually in the code). Add to the mysteries of ZMODEM that will likely never be solved.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Apr 28 14:05:48 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/3bfa626d494d44afd5d6e32a
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Fix erroneous error message

    Subpacket OVERFLOW means received subpacket byte offset is >= the max subpacket length.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Thu Feb 16 00:01:50 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/b4e181688c06a2a05280947f
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    64-bit free disk space fix

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