• src/sbbs3/pack_qwk.cpp

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 27 00:10:34 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/20ec6bfe5aec294b341b9c31
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Fix the messages per second statistic displayed to user

    .. when packing a QWK packet (on Win32, was always reported 0 messages per second).

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 27 00:10:34 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/bbe7f4e2638d77f6bc9bc0a3
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Display/log nicer original QWK packet message size in bytes

    Print the Mbyte estimate.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Apr 16 12:22:40 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/314cd52922b9102f2d4aec41
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Fix QWK/BLT-* copy issue (regression since v3.18)

    Reported by Daryl Stout (TBOLT)

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Jun 8 22:39:27 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/2245523d4834732d80af5921
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Better error handling in QWK packet creation

    If libarchive creates a 0-byte file or no file at all, then fall-through to the "temp file command-line" (if there is at least one Compressible File Type configured).

    If libarchive fails, there will still be a (hopefully helpful) error message logged, but at least the QWK packet may still get created.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Mar 21 11:20:13 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/2c953d3eb700588b101461f4
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Fix FILE (stream) pointer leak in error condition

    Fixes CID 451020

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Wed Feb 7 13:07:34 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/398502c10f0608c702418317
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Another time_t warning... thanks OpenBSD!

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Mar 16 20:11:36 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/478d85d20f6b70d1bb054362
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Add "MSGID" to QWK DOOR.ID file

    This is a "newer" QWK control message supported by Synchronet (for like 20 years now), so it's been missing from the DOOR.ID file all this time and no
    one noticed. <shrug>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri Jan 10 18:20:48 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/70441b12b92fb464935f0f55
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Fix CID 530001

    temp_cmd() should've been called first on any sane platform. <shrug>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri Sep 18 23:15:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e9e4654c9e69e8778f4aa80d
    Modified Files:
    src/sbbs3/pack_qwk.cpp
    Log Message:
    Don't deliver a QWK packet built from files that failed to write

    pack_qwk() never checked whether its writes to MESSAGES.DAT, HEADERS.DAT, VOTING.DAT or the .NDX files succeeded, and ignored every fclose() result.
    When the temp directory's volume stopped accepting writes, the buffered data (even MESSAGES.DAT's 128-byte header) was lost at close, the empty files were archived, and the packet was reported as a success. QWK hubs received 292-byte packets containing 0-byte MESSAGES.DAT/HEADERS.DAT, failed to unpack them and renamed them *.bad. Because the pack "succeeded", the hubs' message pointers were also advanced, so the messages meant for those packets were never sent.

    Now each of those files is closed through a check of ferror() and fclose(),
    and MESSAGES.DAT must be at least one QWK block long before it is archived.
    Any failure is logged via errormsg() and no packet is created, which also leaves the message pointers alone so the messages go out in the next packet.

    Fixes #1244

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

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