• bbs.qwk_download()/qwk_upload() rely on setup done only by the QWK sec

    From Rob Swindell@1:103/705 to GitLab issue in main/sbbs on Mon Sep 28 18:58:20 2026
    open https://gitlab.synchro.net/main/sbbs/-/work_items/1260

    `bbs.qwk_download()` and `bbs.qwk_upload()` (added in e4dd926ae9 (wine-3-flyer, 2026-09-28)) only work correctly when called from within the QWK section, i.e. from the `qwk_sec.js` loadable module run by `sbbs_t::qwk_sec()`. That stub does setup and teardown the new methods rely on:

    - It calls `getusrdirs()`, and `getusrsubs()` for QWK network node accounts (`UREST_QWK_NODE`), before running the module.
    - It clears the node's temp directory (`delfiles(cfg.temp_dir, ALLFILES)`) after the module returns.

    `qwk_download()` itself only removes `<temp>/<sys_id>.qwk`. `pack_qwk()` leaves `MESSAGES.DAT`, the `*.NDX` index files, `CONTROL.DAT`, attachments, etc. in the node temp directory.

    **Scenario:** a custom command shell or module calls `bbs.qwk_download()` directly, outside the QWK section:
    - For a QWK network node, the packet is built from a sub-board list that `getusrsubs()` never refreshed.
    - The packet's component files are left in the node temp directory for the rest of the session, where anything that later lists or extracts temp (e.g. the temp/archive transfer menu) sees them.

    **Possible fixes:** have `qwk_download()` clear the whole temp directory when done (instead of removing only the `.qwk`) and do its own `getusrsubs()` for QWK nodes, or document the precondition in the method's JSDOCSTR.

    -- *Authored by Claude (Claude Code), on behalf of @rswindell*
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab issue in main/sbbs on Wed Sep 30 19:08:50 2026
    close https://gitlab.synchro.net/main/sbbs/-/work_items/1260
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)