snac2

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

commit c5a7a9c4751c339c6abb15f64c5c5b0cc28e2d62
parent 2be2c07e9c930fd4582feb3cb02162c8b3785000
Author: default <nobody@localhost>
Date:   Wed, 28 Sep 2022 21:09:50 +0200

Treat 410 Gone from actors specially.

Diffstat:
Mactivitypub.c | 14++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/activitypub.c b/activitypub.c @@ -564,6 +564,7 @@ int process_message(snac *snac, char *msg, char *req) char *actor = xs_dict_get(msg, "actor"); char *type = xs_dict_get(msg, "type"); xs *actor_o = NULL; + int a_status; char *object, *utype; @@ -574,8 +575,17 @@ int process_message(snac *snac, char *msg, char *req) utype = "(null)"; /* bring the actor */ - if (!valid_status(actor_request(snac, actor, &actor_o))) { - snac_log(snac, xs_fmt("error requesting actor %s -- retry later", actor)); + a_status = actor_request(snac, actor, &actor_o); + + /* if it's a 410 Gone, it's a Delete crap that can be ignored */ + if (a_status == 410) { + return 1; + } + + if (!valid_status(a_status)) { + snac_log(snac, + xs_fmt("error requesting actor %s %d -- retry later", actor, a_status)); + return 0; }