commit 353e393f4de68a209f2d454ca62516e180a3f54a
parent 74817a4552e41a34644ec869c6ff7578854fac74
Author: default <nobody@localhost>
Date: Sat, 8 Apr 2023 06:09:05 +0200
New file mastoapi.c.
Diffstat:
4 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
@@ -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:
diff --git a/httpd.c b/httpd.c
@@ -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
@@ -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;
+}
diff --git a/snac.h b/snac.h
@@ -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);