Mercurial > sci
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); } }