snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 5d26f31a8abc3083a22390f6bac99861a5bca77e
parent 1cdd6d19960c2e448de43eec85f4c4f87776459f
Author: default <nobody@localhost>
Date:   Wed,  5 Apr 2023 23:23:19 +0200

Fixed overzealous rejection of Announces.

Diffstat:
Mactivitypub.c | 11++++++++++-
Msnac.h | 2+-
2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/activitypub.c b/activitypub.c @@ -299,8 +299,17 @@ int is_msg_for_me(snac *snac, xs_dict *c_msg) { const char *type = xs_dict_get(c_msg, "type"); - /* if it's an Announce by someone we don't follow, reject */ if (strcmp(type, "Announce") == 0) { + const char *object = xs_dict_get(c_msg, "object"); + + if (xs_type(object) == XSTYPE_DICT) + object = xs_dict_get(object, "id"); + + /* if it's about one of our posts, accept it */ + if (xs_startswith(object, snac->actor)) + return 2; + + /* if it's by someone we don't follow, reject */ if (!following_check(snac, xs_dict_get(c_msg, "actor"))) return 0; } diff --git a/snac.h b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2023 grunfink / MIT license */ -#define VERSION "2.26" +#define VERSION "2.27-dev" #define USER_AGENT "snac/" VERSION