aboutsummaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
authorgrunfink <grunfink@comam.es>2025-10-24 05:02:28 +0200
committergrunfink <grunfink@comam.es>2025-10-24 05:02:28 +0200
commit1a42fdc8bd4d5dc045a87108e73dcda4f633266b (patch)
tree0fad3d6cc5f6eff50edb610ef6d44acb6fdc598b /activitypub.c
parent2dbd5220ac3f7944588051826b008ea1795ff76c (diff)
Keep track of deleted users and return 410 Gone for them.
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/activitypub.c b/activitypub.c
index 2d53cbe..0368ac8 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -3660,8 +3660,9 @@ int activitypub_get_handler(const xs_dict *req, const char *q_path,
uid = xs_list_get(l, 1);
if (!user_open(&snac, uid)) {
/* invalid user */
- srv_debug(1, xs_fmt("activitypub_get_handler bad user %s", uid));
- return HTTP_STATUS_NOT_FOUND;
+ status = grave(uid, 0) ? HTTP_STATUS_GONE : HTTP_STATUS_NOT_FOUND;
+ srv_debug(1, xs_fmt("activitypub_get_handler bad user %s %d", uid, status));
+ return status;
}
p_path = xs_list_get(l, 2);
@@ -3854,8 +3855,9 @@ int activitypub_post_handler(const xs_dict *req, const char *q_path,
const char *uid = xs_list_get(l, 1);
if (!user_open(&snac, uid)) {
/* invalid user */
- srv_debug(1, xs_fmt("activitypub_post_handler bad user %s", uid));
- return HTTP_STATUS_NOT_FOUND;
+ status = grave(uid, 0) ? HTTP_STATUS_GONE : HTTP_STATUS_NOT_FOUND;
+ srv_debug(1, xs_fmt("activitypub_post_handler bad user %s %d", uid, status));
+ return status;
}
/* if it has a digest, check it now, because