commit 29b6b5c717add09a55266fe04ddaea62c414b68e
parent 935c09125da464d064ea9f72b947c5bc235f5328
Author: default <nobody@localhost>
Date: Sun, 17 Dec 2023 16:25:04 +0100
Even more is_msg_for_me() updates.
Diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/activitypub.c b/activitypub.c
@@ -447,7 +447,8 @@ int is_msg_public(const xs_dict *msg)
int is_msg_for_me(snac *snac, const xs_dict *c_msg)
/* checks if this message is for me */
{
- const char *type = xs_dict_get(c_msg, "type");
+ const char *type = xs_dict_get(c_msg, "type");
+ const char *actor = xs_dict_get(c_msg, "actor");
if (xs_match(type, "Like|Announce")) {
const char *object = xs_dict_get(c_msg, "object");
@@ -464,12 +465,12 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg)
return 2;
/* if it's by someone we don't follow, reject */
- return following_check(snac, xs_dict_get(c_msg, "actor"));
+ return following_check(snac, actor);
}
/* if it's an Undo or an Update, it must be from someone we follow */
if (xs_match(type, "Undo|Update")) {
- return following_check(snac, xs_dict_get(c_msg, "actor"));
+ return following_check(snac, actor);
}
/* if it's not a Create, allow as is */
@@ -477,6 +478,10 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg)
return 1;
}
+ /* if we follow the Creator of this post, allow */
+ if (following_check(snac, actor))
+ return 1;
+
xs_dict *msg = xs_dict_get(c_msg, "object");
xs *rcpts = recipient_list(snac, msg, 0);
xs_list *p = rcpts;