• src/sbbs3/sexyz.c zmodem.c zmodem.h

    From Rob Swindell to Git commit to main/sbbs/master on Friday, December 04, 2020 00:17:14
    https://gitlab.synchro.net/main/sbbs/-/commit/483c86debf4357fbdcf83bf2
    Modified Files:
    src/sbbs3/sexyz.c zmodem.c zmodem.h
    Log Message:
    ZMODEM Window Management support

    The default is still full-streaming mode. The default can be changed by
    setting [ZMODEM] MaxWindowSize in sexyz.ini to a maximum window size to
    use by default (e.g. "100K"). Additionally, a [ZMODDEM] TargetWindowSize
    can be set to a duration (e.g. 60s) to dynamically adjust the maximum
    window size to match the through-put rate while keeping the outstanding data in-flight to an estimated "duration". When TargetWindowSize is used, the MaxWindowSize only specifies the *initial* maximum window size.

    The new '-w' command-line option can be used to control Window Management support (e.g. over-riding the .ini set default) - by using '-w' or '-w0', Window Management won't be used or by using '-w<max-size>', a maximum window size will be imposed (subject to the TargetWindowSize setting mentioned
    above). <max-size> can be specified in bytes or multiples (e.g. "-w100K").
    Ths option is similar to the [l]sz '-w' option except no space is expected between '-w' and the (optional) max-size value.

    Also new, when receiving [ZMODEM] FullDuplex can be set to FALSE to disable streaming mode: if the RecvBufSize is not set (0), the sender should use the subpacket data length (block size, e.g. 1K) as the segment size. Otherwise, setting FullDuplex=FALSE should produce the same behavior as setting the RecvBufSize would before (the result being the use of "segmented ZMODEM" instead of "streaming ZMODEM").

    All sexyz command-line options are case-sensitive now (not just the 'cmds').
    A lot of code clean-up in zmodem.c.

    Incremented zmodem.c rev to 2.0.
    Incremented sexyz version to 3.0.