• src/sbbs3/ftpsrvr.cpp qwkjob.cpp web/root/qwk.ssjs

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Oct 26 00:09:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/2a88818a30535c344576c10b
    Modified Files:
    src/sbbs3/ftpsrvr.cpp qwkjob.cpp web/root/qwk.ssjs
    Log Message:
    qwkjob: queue a REP left behind by a failed import, don't delete it

    FTP and qwk.ssjs removed the received REP after any failed import that
    left the file in place. Besides an empty packet (which the job leaves
    alone outside data/file/), that also happens when the import fails for a
    reason unrelated to the packet: the job's temp directory can't be created,
    the job instance can't be set up, the server is shutting down mid-import,
    or the move to .bad failed. Deleting the file then lost the user's
    replies, and qwk.ssjs still answered 200, so qnet-http.js would not send
    them again.

    After a failed import, both now remove the file only when it is empty,
    and otherwise queue it under data/file/ exactly as for a busy or
    throttled import, so the event-thread sweep retries it (and keeps it as
    .bad through the normal path if it really is bad). A file the job already imported or moved to .bad is left to the job, as before.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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