diff options
author | default <nobody@localhost> | 2023-12-17 16:25:04 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2023-12-17 16:25:04 +0100 |
commit | 29b6b5c717add09a55266fe04ddaea62c414b68e (patch) | |
tree | 83cd9289c8d323189a0291fb980d5944a3756ee7 | |
parent | 935c09125da464d064ea9f72b947c5bc235f5328 (diff) |
Even more is_msg_for_me() updates.
-rw-r--r-- | activitypub.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/activitypub.c b/activitypub.c index f948edc..07d0c17 100644 --- 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; |