From 5d8c80b170292bf444c018fd5a73eaade87b171d Mon Sep 17 00:00:00 2001
From: Jonas Platte <jplatte+git@posteo.de>
Date: Wed, 9 Feb 2022 14:01:44 +0100
Subject: [PATCH] Strip quotes from X-Matrix fields

---
 src/ruma_wrapper/axum.rs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/ruma_wrapper/axum.rs b/src/ruma_wrapper/axum.rs
index cec821260..c4e1d292c 100644
--- a/src/ruma_wrapper/axum.rs
+++ b/src/ruma_wrapper/axum.rs
@@ -315,6 +315,13 @@ fn decode(value: &http::HeaderValue) -> Option<Self> {
         for entry in parameters.split_terminator(',') {
             let (name, value) = entry.split_once('=')?;
 
+            // It's not at all clear why some fields are quoted and others not in the spec,
+            // let's simply accept either form for every field.
+            let value = value
+                .strip_prefix('"')
+                .and_then(|rest| rest.strip_suffix('"'))
+                .unwrap_or(value);
+
             // FIXME: Catch multiple fields of the same name
             match name {
                 "origin" => origin = Some(value.try_into().ok()?),
-- 
GitLab