https://gitlab.synchro.net/main/sbbs/-/commit/3ed339d20062deb3672b1b41
Modified Files:
xtrn/betrayedalliance/getdata.js xtrn/cascadequest/getdata.js xtrn/spacequest0/getdata.js xtrn/syncalert/fetch-assets.js xtrn/syncdawn/fetch-assets.js xtrn/syncrpg/getdata.js
Log Message:
xtrn: route the pinned-checksum fetchers through the mirror fallback
These six already pinned a checksum, so only the download call changes:
the existing size/hash comparison moves into the helper's verify
callback, which is what lets a truncated transfer or a bad copy retry
against the mirror instead of simply failing.
Three of them need the mirror filename given explicitly, not two as
first thought. syncalert and syncdawn rename their downloads on the way
in, and syncrpg's URL ends in a per-request token (games/download/<id>/<token>), so its basename is not a filename at all.
syncalert and syncdawn verify before renaming the .part file, so a
corrupt transfer falls back rather than landing a bad image, and they
now re-verify only when reusing a previously downloaded one -- a fresh
download was already checked, and re-hashing a 556 MB image to learn
what it just proved is wasted work.
Both also gain the *_NO_MAIN guard the sibling fetchers use.
Verified: all six installing from the mirror, betrayedalliance from the official source, syncdawn's full 678 MB fetch through the .part/rename
path, and a deliberately corrupt reused image correctly refused.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net