Fix issue discovering webmentions endpoints for some sites

The Guzzle provided Header::parse does not like commas in URLs
This commit is contained in:
Jonny Barnes 2024-03-02 10:16:05 +00:00
parent acbb58c294
commit 659bc57e24
Signed by: jonny
SSH key fingerprint: SHA256:CTuSlns5U7qlD9jqHvtnVmfYV3Zwl2Z7WnJ4/dqOaL8
2 changed files with 3 additions and 2 deletions

View file

@ -76,7 +76,7 @@ class SendWebMentions implements ShouldQueue
//check HTTP Headers for webmention endpoint
$links = Header::parse($response->getHeader('Link'));
foreach ($links as $link) {
if (mb_stristr($link['rel'], 'webmention')) {
if (array_key_exists('rel', $link) && mb_stristr($link['rel'], 'webmention')) {
return $this->resolveUri(trim($link[0], '<>'), $url);
}
}

View file

@ -114,7 +114,8 @@ class SendWebMentionJobTest extends TestCase
public function linksInNotesCanNotSupportWebmentions(): void
{
$mock = new MockHandler([
new Response(200),
// URLs with commas currently break the parse function Im using
new Response(200, ['Link' => '<https://example.org/foo,bar>; rel="preconnect"']),
]);
$handler = HandlerStack::create($mock);
$client = new Client(['handler' => $handler]);