https://gitlab.synchro.net/main/sbbs/-/commit/55572f85609652cd72413fe2
Modified Files:
exec/tests/qwkjob/hub.js unpack.js src/sbbs3/qwkjob.cpp
Log Message:
qwkjob: judge a packet empty only under its locks
qwkjob_unpack_qwk() and qwkjob_unpack_rep() checked for (and removed) an
empty packet over a minute old before taking the hub lock, or the user and <rep>.lock locks. A QWKnet call-out such as qnet-http.js receive_qwk()
opens data/<HUBID>.qwk for writing and downloads into it while the event
thread holds that hub's lock across the call-out, so another host's sweep
could remove the file mid-download, as soon as the download had stalled
for a minute.
The check now runs after the locks are taken, so a busy lock leaves the
file alone; the regular-file and wildcard check still comes first.
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net