diff options
author | default <nobody@localhost> | 2023-04-08 06:09:05 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2023-04-08 06:09:05 +0200 |
commit | 353e393f4de68a209f2d454ca62516e180a3f54a (patch) | |
tree | 39c03f8abc377244aa06dc11d18d80b374f224a6 | |
parent | 74817a4552e41a34644ec869c6ff7578854fac74 (diff) |
New file mastoapi.c.
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | httpd.c | 4 | ||||
-rw-r--r-- | mastoapi.c | 24 | ||||
-rw-r--r-- | snac.h | 3 |
4 files changed, 32 insertions, 1 deletions
@@ -5,7 +5,7 @@ CFLAGS?=-g -Wall all: snac snac: snac.o main.o data.o http.o httpd.o webfinger.o \ - activitypub.o html.o utils.o format.o upgrade.o + activitypub.o html.o utils.o format.o upgrade.o mastoapi.o $(CC) $(CFLAGS) -L/usr/local/lib *.o -lcurl -lcrypto -pthread $(LDFLAGS) -o $@ .c.o: @@ -186,6 +186,10 @@ void httpd_connection(FILE *f) payload, p_size, &body, &b_size, &ctype); if (status == 0) + status = mastoapi_post_handler(req, q_path, + payload, p_size, &body, &b_size, &ctype); + + if (status == 0) status = html_post_handler(req, q_path, payload, p_size, &body, &b_size, &ctype); } diff --git a/mastoapi.c b/mastoapi.c new file mode 100644 index 0000000..1e4e309 --- /dev/null +++ b/mastoapi.c @@ -0,0 +1,24 @@ +/* snac - A simple, minimalistic ActivityPub instance */ +/* copyright (c) 2022 - 2023 grunfink / MIT license */ + +#include "xs.h" +#include "xs_encdec.h" +#include "xs_json.h" +#include "xs_time.h" + +#include "snac.h" + +int mastoapi_post_handler(xs_dict *req, char *q_path, char *payload, int p_size, + char **body, int *b_size, char **ctype) +{ + int status = 404; + + if (!xs_startswith(q_path, "/api/v1/")) + return 0; + + xs *j = xs_json_dumps_pp(req, 4); + printf("%s\n", j); + printf("%s\n", payload); + + return status; +} @@ -223,3 +223,6 @@ int resetpwd(snac *snac); int job_fifo_ready(void); void job_post(const xs_val *job, int urgent); void job_wait(xs_val **job); + +int mastoapi_post_handler(xs_dict *req, char *q_path, char *payload, int p_size, + char **body, int *b_size, char **ctype); |