From 3c6b2ae3e6cd2feb65bf28815edac7b9d64ee899 Mon Sep 17 00:00:00 2001 From: alemi Date: Mon, 22 Apr 2024 22:42:00 +0200 Subject: [PATCH] fix: don't embed remote objects when dispatching weak check but should still save some bytes --- src/server/dispatcher.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/server/dispatcher.rs b/src/server/dispatcher.rs index 7491ff6..1cc8564 100644 --- a/src/server/dispatcher.rs +++ b/src/server/dispatcher.rs @@ -76,8 +76,16 @@ async fn worker(db: DatabaseConnection, domain: String, poll_interval: u64, mut .one(&db) .await? // TODO probably should not fail here and at least re-insert the delivery { - Some((activity, Some(object))) => activity.ap().set_object(Node::object(object.ap())), Some((activity, None)) => activity.ap(), + Some((activity, Some(object))) => { + // embed local object when dispatching + // TODO this .contains() is jank, could trick us into embedding remote activities + if object.id.contains(&domain) { + activity.ap().set_object(Node::object(object.ap())) + } else { + activity.ap() + } + }, None => { tracing::warn!("skipping dispatch for deleted object {}", delivery.activity); continue;