Commit Graph
3 Commits
Author SHA1 Message Date
DeckardDetribine e0b9367e71 fix(music): reload artwork beyond the cache budget 2026-10-06 17:47:06 +01:00
ReSkate localandClaude Sonnet 5.5 702e5c74d2 Music: serve mod cover artwork over HTTP/2 cleartext
The game fetches the artwork URL with HTTP/2 cleartext (h2c, prior knowledge), and only from 127.0.0.1. The loopback server spoke HTTP/1.1, so every cover request was answered with an HTTP/1.1 404 and mod playlist/song covers never appeared.

Speak h2c: complete the SETTINGS handshake, read the request header block (HEADERS and CONTINUATION frames), decode :path with a minimal HPACK decoder (static table and Huffman code from RFC 7541 in hpack_tables.h), and serve the matching image as HEADERS plus DATA frames with flow control. Keep the HTTP/1.1 path for other clients. Serve from one stable origin (http://127.0.0.1:47823/music-art/<mod>/<relative>) so the game's HTTP cache is reused, send Cache-Control and an ETag so it stops re-fetching, close gracefully (closing with unread frames queued makes Windows send RST and the client drops the tail), and use a non-blocking listener since several pollers share it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 00:09:51 +01:00
ReSkate local 5a01b1b0de Music: support custom playlist and song cover artwork in mods 2026-10-05 00:09:41 +01:00