From cd05398133a1ed7b4e953e3a4d363273b58ad970 Mon Sep 17 00:00:00 2001 From: grunfink Date: Thu, 14 Aug 2025 11:17:49 +0200 Subject: Added nodeinfo 2.1 support. --- httpd.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'httpd.c') diff --git a/httpd.c b/httpd.c index d01eb9c..71e04bf 100644 --- a/httpd.c +++ b/httpd.c @@ -283,9 +283,10 @@ int server_get_handler(xs_dict *req, const char *q_path, status = HTTP_STATUS_OK; *ctype = "application/json; charset=utf-8"; *body = xs_fmt("{\"links\":[" - "{\"rel\":\"http:/" "/nodeinfo.diaspora.software/ns/schema/2.0\"," - "\"href\":\"%s/nodeinfo_2_0\"}]}", - srv_baseurl); + "{\"rel\":\"http:/" "/nodeinfo.diaspora.software/ns/schema/2.0\",\"href\":\"%s/nodeinfo_2_0\"}," + "{\"rel\":\"http:/" "/nodeinfo.diaspora.software/ns/schema/2.1\",\"href\":\"%s/nodeinfo_2_1\"}" + "]}", + srv_baseurl, srv_baseurl); } else if (strcmp(q_path, "/.well-known/host-meta") == 0) { @@ -303,6 +304,19 @@ int server_get_handler(xs_dict *req, const char *q_path, *body = nodeinfo_2_0(); } else + if (strcmp(q_path, "/nodeinfo_2_1") == 0) { + xs *s = nodeinfo_2_0(); + xs *j = xs_json_loads(s); + + j = xs_dict_set(j, "version", "2.1"); + j = xs_dict_set_path(j, "software.repository", WHAT_IS_SNAC_URL); + j = xs_dict_set_path(j, "software.homepage", SNAC_DOC_URL); + + status = HTTP_STATUS_OK; + *ctype = "application/json; charset=utf-8"; + *body = xs_json_dumps(j, 4); + } + else if (strcmp(q_path, "/robots.txt") == 0) { status = HTTP_STATUS_OK; *ctype = "text/plain"; -- cgit v1.2.3