commit c6fc02efe8520e26eeb5e79c03b7d61ab735d898
parent 066ce9044912cb9aac66dd6b2be4b2300db922bc
Author: default <nobody@localhost>
Date: Tue, 31 Dec 2024 08:06:48 +0100
Skip enqueue_output() to local users (already served by the local shared-inbox).
Diffstat:
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/activitypub.c b/activitypub.c
@@ -2428,15 +2428,18 @@ void process_user_queue_item(snac *snac, xs_dict *q_item)
/* iterate the recipients */
xs_list_foreach(rcpts, actor) {
- xs *inbox = get_actor_inbox(actor, 1);
+ /* local users were served by this_shared_inbox */
+ if (!xs_startswith(actor, srv_baseurl)) {
+ xs *inbox = get_actor_inbox(actor, 1);
- if (inbox != NULL) {
- /* add to the set and, if it's not there, send message */
- if (xs_set_add(&inboxes, inbox) == 1)
- enqueue_output(snac, msg, inbox, 0, 0);
+ if (inbox != NULL) {
+ /* add to the set and, if it's not there, send message */
+ if (xs_set_add(&inboxes, inbox) == 1)
+ enqueue_output(snac, msg, inbox, 0, 0);
+ }
+ else
+ snac_log(snac, xs_fmt("cannot find inbox for %s", actor));
}
- else
- snac_log(snac, xs_fmt("cannot find inbox for %s", actor));
}
/* if it's a public note or question, send to the collected inboxes */