commit 94ef803701d7a7596a5347a8b9af6c586b795c92
parent 66a7f633b3b48d0d5652fb6c2af23badf379a4cb
Author: default <nobody@localhost>
Date: Tue, 27 Sep 2022 19:00:24 +0200
Timeline pages are also served.
Diffstat:
2 files changed, 16 insertions(+), 8 deletions(-)
diff --git 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;
}
diff --git a/httpd.c b/httpd.c
@@ -80,7 +80,7 @@ int server_get_handler(d_char *req, char *q_path,
}
if (status != 0)
- srv_debug(1, xs_fmt("server_get_handler '%s' %d", q_path, status));
+ srv_debug(1, xs_fmt("server_get_handler serving '%s' %d", q_path, status));
return status;
}