diff options
author | default <nobody@localhost> | 2022-09-27 19:00:24 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2022-09-27 19:00:24 +0200 |
commit | 94ef803701d7a7596a5347a8b9af6c586b795c92 (patch) | |
tree | e393e8a6a045e320b9e556ae8f9b380f0ae4b36b /activitypub.c | |
parent | 66a7f633b3b48d0d5652fb6c2af23badf379a4cb (diff) |
Timeline pages are also served.
Diffstat (limited to 'activitypub.c')
-rw-r--r-- | activitypub.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/activitypub.c b/activitypub.c index 025c48c..5ab7a96 100644 --- a/activitypub.c +++ b/activitypub.c @@ -773,6 +773,12 @@ int activitypub_get_handler(d_char *req, char *q_path, } else if (xs_startswith(p_path, "p/")) { + xs *id = xs_fmt("%s/%s", snac.actor, p_path); + + if ((msg = timeline_find(&snac, id)) != NULL) + msg = xs_dict_del(msg, "_snac"); + else + status = 404; } else status = 404; @@ -782,6 +788,8 @@ int activitypub_get_handler(d_char *req, char *q_path, *b_size = strlen(*body); } + snac_debug(&snac, 1, xs_fmt("activitypub_get_handler serving %s %d", q_path, status)); + user_free(&snac); return status; @@ -836,18 +844,18 @@ int activitypub_post_handler(d_char *req, char *q_path, xs *s1 = xs_sha256_base64(payload, p_size); xs *s2 = xs_fmt("SHA-256=%s", s1); - if (strcmp(s2, v) == 0) - srv_log(xs_fmt("digest check OK")); - else + if (strcmp(s2, v) != 0) { srv_log(xs_fmt("digest check FAILED")); + status = 400; + } } - enqueue_input(&snac, msg, req); + if (valid_status(status)) { + enqueue_input(&snac, msg, req); + *ctype = "application/activity+json"; + } user_free(&snac); - if (valid_status(status)) - *ctype = "application/activity+json"; - return status; } |