Commit 53ffe26
Ignore Content-Type parameters when polling MSC4108 rendezvous channel
MSC4108RendezvousSession.receive() compared the Content-Type header
against "text/plain" with strict string equality. If a reverse proxy in
front of the rendezvous server appends parameters to the header (e.g.
nginx's `charset` directive rewrites it to `text/plain; charset=utf-8`),
every incoming payload was treated as "no new message" and silently
discarded, deadlocking QR code login until the session expired.
Parse out the media type per RFC 9110 (parameters follow the type/subtype
after a semicolon; type names are case-insensitive) before comparing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Krithin Sitaram <1389679+krithin@users.noreply.github.com>1 parent d19cb75 commit 53ffe26
2 files changed
Lines changed: 32 additions & 1 deletion
File tree
- spec/unit/rendezvous
- src/rendezvous/transports
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
213 | 241 | | |
214 | 242 | | |
215 | 243 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
206 | | - | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
207 | 210 | | |
208 | 211 | | |
209 | 212 | | |
| |||
0 commit comments