edde746
53535e1678
fix(jellyfin): percent-encode the MediaBrowser auth header
...
Since real device names started reaching the header, an accented one
made login impossible: dart:io refuses header values above 0x7F, and
CFNetwork puts the raw code unit on the wire as a Latin-1 byte, which
Kestrel rejects as a malformed request with 400 before Jellyfin routes
POST /Users/AuthenticateByName.
Encode every field the way the official Jellyfin SDK does; the server
already reverses it with WebUtility.UrlDecode, so the wire value stays
pure ASCII while the device list shows the real name. Quotes, commas
and `=` no longer need stripping either. sanitizeHeaderValue, which
still guards the Plex headers, now folds Latin letters to their base
form instead of emitting bytes no transport accepts.
close #1685
2026-07-28 05:07:00 +02:00
..
2026-07-26 06:09:47 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:48 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:48 +02:00
2026-04-21 12:04:48 +02:00
2026-07-10 07:10:15 +02:00
2026-07-12 08:42:24 +02:00
2026-07-14 18:11:04 +02:00
2026-07-26 06:09:49 +02:00
2026-07-26 06:09:47 +02:00
2026-06-12 06:30:38 +02:00
2026-07-26 06:09:50 +02:00
2026-07-26 06:09:49 +02:00
2026-07-26 06:09:48 +02:00
2026-07-28 05:07:00 +02:00
2026-07-26 07:08:01 +02:00
2026-07-26 19:41:23 +02:00
2026-06-14 18:34:12 +02:00
2026-07-05 08:34:55 +02:00
2026-05-31 20:33:38 +02:00
2026-07-24 03:46:46 +02:00
2026-07-13 23:13:53 +02:00
2026-07-14 18:11:04 +02:00
2026-07-24 03:46:46 +02:00
2026-05-04 22:40:18 +02:00
2026-07-24 07:30:43 +02:00
2026-04-18 12:40:35 +02:00
2026-07-12 17:31:16 +02:00
2026-06-12 07:18:34 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:50 +02:00
2026-05-02 19:18:42 +02:00
2026-06-01 11:06:03 +02:00
2026-05-11 12:54:26 +02:00
2026-07-12 17:31:13 +02:00
2026-07-12 08:42:24 +02:00
2026-05-11 02:40:50 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-05-01 07:55:15 +02:00
2026-05-04 22:40:18 +02:00
2026-07-26 06:09:49 +02:00
2026-07-26 06:09:49 +02:00
2026-07-24 03:46:46 +02:00
2026-07-24 03:46:46 +02:00
2026-07-05 15:55:52 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:50 +02:00
2026-06-01 11:06:03 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 06:09:49 +02:00
2026-07-18 13:32:40 +02:00
2026-07-26 06:09:49 +02:00
2026-06-12 15:22:52 +02:00
2026-07-12 08:42:18 +02:00
2026-05-19 10:54:04 +02:00
2026-07-26 06:09:50 +02:00
2026-06-12 06:30:38 +02:00
2026-07-26 04:24:55 +02:00
2026-05-01 01:20:36 +02:00
2026-05-27 06:52:03 +02:00
2026-07-26 06:09:48 +02:00
2026-06-13 13:23:41 +02:00
2026-05-06 00:51:00 +02:00
2026-07-14 18:11:04 +02:00
2026-07-26 06:09:49 +02:00
2026-06-08 22:03:28 +02:00
2026-05-11 12:55:59 +02:00
2025-12-14 21:03:11 +01:00
2026-05-01 01:20:36 +02:00
2026-07-24 03:46:46 +02:00
2026-05-01 01:20:36 +02:00
2026-05-04 22:40:18 +02:00
2026-05-19 20:12:19 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:50 +02:00
2026-07-13 00:03:52 +02:00
2026-05-01 01:20:36 +02:00
2026-07-13 00:03:52 +02:00
2026-06-18 00:53:48 +02:00
2026-07-24 07:48:42 +02:00
2026-06-13 20:51:14 +02:00
2026-05-21 00:42:19 +02:00
2026-06-12 04:16:39 +02:00
2026-06-13 13:23:22 +02:00
2026-06-18 00:53:48 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:50 +02:00