summaryrefslogtreecommitdiff
path: root/internal/federation/dereferencing/status.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/federation/dereferencing/status.go')
-rw-r--r--internal/federation/dereferencing/status.go21
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(),
)
}