diff options
author | default <nobody@localhost> | 2022-09-28 19:59:19 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2022-09-28 19:59:19 +0200 |
commit | c38cc09e4c593f4c7a53df6e289e8b6af03bd9ca (patch) | |
tree | 775b8f029f31195de4e02f54c5dae28c1d527350 | |
parent | 484a7f1fd8305ea395ae46681e17e06ac2d81565 (diff) |
Process 'Undo' + 'Follow'.
-rw-r--r-- | activitypub.c | 10 | ||||
-rw-r--r-- | data.c | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/activitypub.c b/activitypub.c index 81bfa59..82bf028 100644 --- a/activitypub.c +++ b/activitypub.c @@ -591,11 +591,17 @@ void process_message(snac *snac, char *msg, char *req) snac_log(snac, xs_fmt("New follower %s", actor)); } else -/* if (strcmp(type, "Undo") == 0) { + if (strcmp(utype, "Follow") == 0) { + if (valid_status(follower_del(snac, actor))) + snac_log(snac, xs_fmt("no longer following us %s", actor)); + else + snac_log(snac, xs_fmt("error deleting follower %s", actor)); + } + else + snac_debug(snac, 1, xs_fmt("ignored 'Undo' for object type '%s'", utype)); } else -*/ if (strcmp(type, "Create") == 0) { if (strcmp(utype, "Note") == 0) { if (is_muted(snac, actor)) @@ -217,13 +217,17 @@ int follower_add(snac *snac, char *actor, char *msg) int follower_del(snac *snac, char *actor) /* deletes a follower */ { + int status = 200; xs *fn = _follower_fn(snac, actor); - unlink(fn); + if (fn != NULL) + unlink(fn); + else + status = 404; snac_debug(snac, 2, xs_fmt("follower_del %s %s", actor, fn)); - return 200; + return status; } |