• exec/tests/qwkjob/pack.js src/sbbs3/exec.cpp ftpsrvr.cpp qwkjob.cpp we

    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/4a18a063c5f20918ebd09fc8
    Modified Files:
    exec/tests/qwkjob/pack.js src/sbbs3/exec.cpp ftpsrvr.cpp qwkjob.cpp web/root/qwk.ssjs
    Log Message:
    qwkjob: spare live jobs' temp dirs; FTP and web packet re-checks

    - The temp/qwk/ prune judged a job directory stale by its modification
    time alone (1 hour), so a running job whose directory sat idle (a slow
    archiver, a stalled network file system) could have it deleted. The age
    is now 6 hours, and a directory named for this host is kept while its
    process is running: another process is checked with kill(pid, 0)
    (OpenProcess() on Windows), this process by the job directories it has
    in use.
    - FTP: while waiting for a packing slot, a QWK download now re-checks for
    data/file/<user#>.qwk after each wait and sends a packet another session
    created meanwhile, instead of packing again over the one being sent.
    - qwk.ssjs: an "empty" pack result serves a packet another session created
    since the first check, as the FTP server does.
    - A job's headless sbbs_t has no usable startup or server hosts for a
    JavaScript context, which an EX_SH ?script archiver could reach through
    external() -> js_execxtrn(). js_execxtrn() and js_execfile() now refuse
    in a job ("JavaScript not available in QWK jobs") without calling
    js_init().

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

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