aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Model.Tests/Dlna/StreamInfoTests.cs
AgeCommit message (Collapse)Author
2026-02-18Fix malformed query string in StreamInfo.ToUrl() causing 500 error via proxiesCosmin Dumitru
StreamInfo.ToUrl() generated URLs like `/master.m3u8?&DeviceId=...` (note `?&`) because `?` was appended to the path and all parameters started with `&`. When the first optional parameter (DeviceProfileId) was null, the result was a malformed query string. This is harmless when clients hit Jellyfin directly (ASP.NET Core tolerates `?&`), but when accessed through a reverse proxy that parses and re-serializes the URL (e.g. Home Assistant ingress via aiohttp/yarl), `?&` becomes `?=&` — introducing an empty-key query parameter. ParseStreamOptions then crashes on `param.Key[0]` with IndexOutOfRangeException. Changes: - StreamInfo.ToUrl(): Track query start position and replace the first `&` with `?` after all parameters are appended, producing valid query strings - ParseStreamOptions: Guard against empty query parameter keys - Tests: Remove .Replace("?&", "?") workaround that masked the bug Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2025-03-31Use pattern matching for null checks (#13793)Bond-009
Fix the few that slipped through
2025-03-28Reduce allocations, simplifed code, faster implementation, included tests - ↵Tim Eisele
StreamInfo.ToUrl (#9369) * Rework PR 6168 * Fix test