summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2022-09-27 19:00:24 +0200
committerdefault <nobody@localhost>2022-09-27 19:00:24 +0200
commit94ef803701d7a7596a5347a8b9af6c586b795c92 (patch)
treee393e8a6a045e320b9e556ae8f9b380f0ae4b36b
parent66a7f633b3b48d0d5652fb6c2af23badf379a4cb (diff)
Timeline pages are also served.
-rw-r--r--activitypub.c22
-rw-r--r--httpd.c2
2 files changed, 16 insertions, 8 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;
}
diff --git a/httpd.c b/httpd.c
index 13591a1..447d30c 100644
--- 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;
}