From 04745f5f7d240fe36a7d0a864132ad9fcc4ea4b0 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 17 Dec 2023 17:07:26 +0100 Subject: [PATCH] Blah blah blah is_msg_for_me() blah blah blah --- activitypub.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/activitypub.c b/activitypub.c index 77a496f..2f7c424 100644 --- a/activitypub.c +++ b/activitypub.c @@ -478,8 +478,10 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg) return 1; } - /* if we follow the actor of this post, allow */ - if (following_check(snac, actor)) + int pub_msg = is_msg_public(c_msg); + + /* if this message is public and we follow the actor of this post, allow */ + if (pub_msg && following_check(snac, actor)) return 1; xs_dict *msg = xs_dict_get(c_msg, "object"); @@ -493,14 +495,14 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg) return 2; /* for someone we follow? (probably cc'ed) accept */ - if (following_check(snac, v)) + if (pub_msg && following_check(snac, v)) return 5; } /* accept if it's by someone we follow */ char *atto = xs_dict_get(msg, "attributedTo"); - if (!xs_is_null(atto) && following_check(snac, atto)) + if (pub_msg && !xs_is_null(atto) && following_check(snac, atto)) return 3; /* is this message a reply to another? */ @@ -513,11 +515,13 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg) atto = xs_dict_get(r_msg, "attributedTo"); /* accept if the replied message is from someone we follow */ - if (!xs_is_null(atto) && following_check(snac, atto)) + if (pub_msg && !xs_is_null(atto) && following_check(snac, atto)) return 4; } } + snac_debug(snac, 0, xs_fmt("is_msg_for_me() final")); + return 0; }