diff scid/http.c @ 50:b474f0985e39

scictl: add API key support
author David Demelier <markand@malikania.fr>
date Wed, 17 Aug 2022 09:11:58 +0200
parents e8f24896b484
children 7a4112eec15b
line wrap: on
line diff
--- a/scid/http.c	Wed Aug 17 09:11:44 2022 +0200
+++ b/scid/http.c	Wed Aug 17 09:11:58 2022 +0200
@@ -52,10 +52,11 @@
 static int
 allowed(const struct kreq *req)
 {
-	for (size_t i = 0; i < req->reqsz; ++i)
+	for (size_t i = 0; i < req->reqsz; ++i) {
 		if (strcmp(req->reqs[i].key, "X-Api-Key") == 0 &&
 		    strcmp(req->reqs[i].val, scid.apikey) == 0)
 			return 1;
+	}
 
 	return 0;
 }
@@ -78,13 +79,13 @@
 	/* Any API page requires authentication key. */
 	if (req->method == KMETHOD_POST && !allowed(req)) {
 		log_warn("http: client not allowed");
-		pageutil_status(req, KHTTP_401);
+		pageutil_json(req, KHTTP_401, NULL);
 	} else {
 		for (size_t i = 0; apis[i].prefix; ++i)
 			if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0)
 				return apis[i].handler(req);
 
-		pageutil_status(req, KHTTP_404);
+		pageutil_json(req, KHTTP_404, NULL);
 	}
 }