diff options
| author | shtrophic <christoph@liebender.dev> | 2025-03-20 22:54:56 +0100 |
|---|---|---|
| committer | shtrophic <christoph@liebender.dev> | 2025-03-20 22:54:56 +0100 |
| commit | 0aeebc177f7f40cd583c65a085c51a9398995135 (patch) | |
| tree | 7d4c79b675b612ffd16b645f2014dfc9c231c25c /activitypub.c | |
| parent | 398b733b2c0ff4c96f4de9731a864373842e86d6 (diff) | |
| parent | bd9e9b71d7e039cc2ed971b5f2d54e6553440210 (diff) | |
Merge tag '2.74' into curl-smtp
Version 2.74 RELEASED.
Diffstat (limited to 'activitypub.c')
| -rw-r--r-- | activitypub.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/activitypub.c b/activitypub.c index aa679a0..3f4b313 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2183,25 +2183,32 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) if (strcmp(type, "Undo") == 0) { /** **/ const char *id = xs_dict_get(object, "object"); - if (xs_type(object) != XSTYPE_DICT) + if (xs_type(object) != XSTYPE_DICT) { + snac_debug(snac, 1, xs_fmt("undo: overriding utype %s | %s | %s", + utype, id, actor)); utype = "Follow"; + } if (strcmp(utype, "Follow") == 0) { /** **/ - if (id && strcmp(id, snac->actor) != 0) + if (!id) { + snac_log(snac, xs_fmt("no id (msg.object.object) when " + "handling follow: %s", actor)); + return 1; + } + if (strcmp(id, snac->actor) != 0) snac_debug(snac, 1, xs_fmt("Undo + Follow from %s not for us (%s)", actor, id)); - else { - if (valid_status(follower_del(snac, actor))) { - snac_log(snac, xs_fmt("no longer following us %s", actor)); - do_notify = 1; - } - else - if (pending_check(snac, actor)) { - pending_del(snac, actor); - snac_log(snac, xs_fmt("cancelled pending follow from %s", actor)); - } - else - snac_log(snac, xs_fmt("error deleting follower %s", actor)); + else + if (valid_status(follower_del(snac, actor))) { + snac_log(snac, xs_fmt("no longer following us %s", actor)); + do_notify = 1; } + else + if (pending_check(snac, actor)) { + pending_del(snac, actor); + snac_log(snac, xs_fmt("cancelled pending follow from %s", actor)); + } + else + snac_log(snac, xs_fmt("error deleting follower %s", actor)); } else if (strcmp(utype, "Like") == 0 || strcmp(utype, "EmojiReact") == 0) { /** **/ |