From 1e108f8445aad556a79c7dbe817de2d51624b112 Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Mon, 14 Mar 2022 11:01:09 -0400 Subject: [PATCH] Don't use a custom parser. --- src/allmydata/storage/http_client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/allmydata/storage/http_client.py b/src/allmydata/storage/http_client.py index 7458f9271..5733c1514 100644 --- a/src/allmydata/storage/http_client.py +++ b/src/allmydata/storage/http_client.py @@ -32,6 +32,7 @@ import attr from cbor2 import loads, dumps from collections_extended import RangeMap from werkzeug.datastructures import Range, ContentRange +from werkzeug.http import parse_options_header from twisted.web.http_headers import Headers from twisted.web import http from twisted.internet.defer import inlineCallbacks, returnValue, fail, Deferred @@ -58,7 +59,10 @@ class ClientException(Exception): def _decode_cbor(response): """Given HTTP response, return decoded CBOR body.""" if response.code > 199 and response.code < 300: - if response.headers.getRawHeaders("content-type") == ["application/cbor"]: + content_type = parse_options_header( + (response.headers.getRawHeaders("content-type") or [None])[0] + )[0] + if content_type == "application/cbor": # TODO limit memory usage # https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3872 return treq.content(response).addCallback(loads)