aboutsummaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
authorshtrophic <christoph@liebender.dev>2025-03-20 22:54:56 +0100
committershtrophic <christoph@liebender.dev>2025-03-20 22:54:56 +0100
commit0aeebc177f7f40cd583c65a085c51a9398995135 (patch)
tree7d4c79b675b612ffd16b645f2014dfc9c231c25c /activitypub.c
parent398b733b2c0ff4c96f4de9731a864373842e86d6 (diff)
parentbd9e9b71d7e039cc2ed971b5f2d54e6553440210 (diff)
Merge tag '2.74' into curl-smtp
Version 2.74 RELEASED.
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c35
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) { /** **/