https://gitlab.synchro.net/main/sbbs/-/commit/c322f624d537025462d70da5
Modified Files:
src/sbbs3/smbutil.c
Log Message:
Rename msgbase files *before* packing to insure exclusive access
Even with the *.lock file created exclusively, there's still a race condition where other processes could have the msgbase files open in which case the
final rename (e.g. from *.sd$ to *.sdt) would fail with an error and you'd end up with a mix of files from before and after the pack operation.
This rename-first operation insures we're the only ones with the msgbase open and since we have it locked, no one else should be able to open subsequently either.
Updated the temp filename extenions to 4 chars now, so the operation goes like this:
ren pack ren
[*.shd/sdt/sid] -> [*.shd_/sdt_/sid_] -> [*.shd$/sdt$/sid$] -> [*.shd/sdt/sid]
Commented out the "duplicate index" message which was wrong (it's the header that's duplicate, not the index) and a perfectly normal situation for mail
msgs to multiple recipients.
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)