diff options
-rw-r--r-- | activitypub.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/activitypub.c b/activitypub.c index 1b83bd8..62b4faf 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2035,8 +2035,9 @@ void process_queue_item(xs_dict *q_item) else if (strcmp(type, "input") == 0) { /* redistribute the input message to all users */ - char *ntid = xs_dict_get(q_item, "ntid"); - xs *tmpfn = xs_fmt("%s/tmp/%s.json", srv_basedir, ntid); + char *ntid = xs_dict_get(q_item, "ntid"); + xs *tmpfn = xs_fmt("%s/tmp/%s.json", srv_basedir, ntid); + xs_dict *msg = xs_dict_get(q_item, "message"); FILE *f; if ((f = fopen(tmpfn, "w")) != NULL) { @@ -2052,12 +2053,14 @@ void process_queue_item(xs_dict *q_item) snac user; if (user_open(&user, v)) { - xs *fn = xs_fmt("%s/queue/%s.json", user.basedir, ntid); + if (is_msg_for_me(&user, msg)) { + xs *fn = xs_fmt("%s/queue/%s.json", user.basedir, ntid); - snac_debug(&user, 1, xs_fmt("enqueue_input (from shared inbox) %s", fn)); + snac_debug(&user, 1, xs_fmt("enqueue_input (from shared inbox) %s", fn)); - if (link(tmpfn, fn) < 0) - srv_log(xs_fmt("link(%s, %s) error", tmpfn, fn)); + if (link(tmpfn, fn) < 0) + srv_log(xs_fmt("link(%s, %s) error", tmpfn, fn)); + } user_free(&user); } |