From d13dba7445ef926f0fc8de47cf375763b06b8727 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 20 Oct 2024 18:38:16 +0000 Subject: [PATCH] Issue 14126: Workaround for wrong content types --- src/Model/Item.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Model/Item.php b/src/Model/Item.php index 6ce65dcf61..62b8b78772 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -4155,6 +4155,10 @@ class Item try { $curlResult = DI::httpClient()->head($uri, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON_AS, HttpClientOptions::REQUEST => HttpClientRequest::ACTIVITYPUB]); + if (!HTTPSignature::isValidContentType($curlResult->getContentType(), $uri) && (current(explode(';', $curlResult->getContentType())) == 'application/json')) { + // Issue 14126: Workaround for Mastodon servers that return "application/json" on a "head" request. + $curlResult = HTTPSignature::fetchRaw($uri, $uid); + } if (HTTPSignature::isValidContentType($curlResult->getContentType(), $uri)) { $fetched_uri = ActivityPub\Processor::fetchMissingActivity($uri, [], '', $completion, $uid); }