Skip to content

fix(native): handle zip-framed chunk and deque ContentServer pool - #154

Open
SK-DEV-AI wants to merge 1 commit into
Midrags:mainfrom
SK-DEV-AI:fix-native-228990-and-cdn-deque
Open

fix(native): handle zip-framed chunk and deque ContentServer pool#154
SK-DEV-AI wants to merge 1 commit into
Midrags:mainfrom
SK-DEV-AI:fix-native-228990-and-cdn-deque

Conversation

@SK-DEV-AI

Copy link
Copy Markdown

Two native downloader fixes that hit every user after the steam lib update.

1. zip-framed chunk PK (depot 228990 etc.)
Some shared redist depots (e.g. 228990 _CommonRedist/DirectX/Jun2010) store chunks as PK\x03\x04 zip with a single entry z instead of VZa/VSZa. _decompress_chunk raised ValueError: unknown chunk magic 504b0304 and the whole depot failed 0/203 (Sekiro repro: every run, every mirror). Fix unzips the single entry; unknown magic falls back to stored-uncompressed with caller SHA1 as guard — matches what Steam does.

2. deque[ContentServer] pool
steam 2.x (solsticegamestudios) returns deque[ContentServer(host, https)], not list[dict]. isinstance(raw, list) collapsed the ~17 Valve edges to the single steampipe fallback and got throttled mid-download. Fix normalizes both shapes to [{"host","https_support"}].

Verified on SteaMidra 6.6.6 against Sekiro (228990 203/203 after fix) and full 228990 SHA1 repro; no wrapper-specific code.

…ntentServer pool

- _decompress_chunk: some shared redist depots (e.g. 228990 _CommonRedist/DirectX) store chunks as PK zip with single entry 'z' instead of VZa/VSZa. Previously raised ValueError unknown chunk magic and failed 0/203 for every game pulling that depot (Sekiro 203/203 repro). Now unzips and falls back to stored-uncompressed with SHA1 validation.

- _get_cdn_servers: steam 2.x returns deque[ContentServer(host,https)] not list[dict]; isinstance(raw,list) collapsed ~17 Valve edges to single steampipe host causing throttling. Normalize both shapes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant