diff options
Diffstat (limited to 'internal/federation/dereferencing/status.go')
-rw-r--r-- | internal/federation/dereferencing/status.go | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/internal/federation/dereferencing/status.go b/internal/federation/dereferencing/status.go index 88746fc3a..fa9906066 100644 --- a/internal/federation/dereferencing/status.go +++ b/internal/federation/dereferencing/status.go @@ -467,13 +467,26 @@ func (d *Dereferencer) enrichStatus( ) } - // Ensure the final parsed status URI / URL matches + // Ensure the final parsed status URI or URL matches // the input URI we fetched (or received) it as. - if expect := uri.String(); latestStatus.URI != expect && - latestStatus.URL != expect { + matches, err := util.URIMatches( + uri, + append( + ap.GetURL(apubStatus), // status URL(s) + ap.GetJSONLDId(apubStatus), // status URI + )..., + ) + if err != nil { + return nil, nil, gtserror.Newf( + "error checking dereferenced status uri %s: %w", + latestStatus.URI, err, + ) + } + + if !matches { return nil, nil, gtserror.Newf( "dereferenced status uri %s does not match %s", - latestStatus.URI, expect, + latestStatus.URI, uri.String(), ) } |