Mercurial > sci
comparison scid/http.c @ 26:7e10cace67a3
scid: add basic mustache support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 02 Aug 2022 13:24:13 +0200 |
parents | 34cbbd215ef7 |
children | dae2de19ca5d |
comparison
equal
deleted
inserted
replaced
25:c40f98360ac9 | 26:7e10cace67a3 |
---|---|
30 #include "page-api-jobresults.h" | 30 #include "page-api-jobresults.h" |
31 #include "page-api-jobs.h" | 31 #include "page-api-jobs.h" |
32 #include "page-api-projects.h" | 32 #include "page-api-projects.h" |
33 #include "page-api-todo.h" | 33 #include "page-api-todo.h" |
34 #include "page-api-workers.h" | 34 #include "page-api-workers.h" |
35 #include "page-index.h" | |
35 #include "page.h" | 36 #include "page.h" |
36 | 37 |
37 enum page { | 38 enum page { |
39 PAGE_INDEX, /* Job results at index. */ | |
38 PAGE_API, | 40 PAGE_API, |
39 PAGE_LAST /* Not used. */ | 41 PAGE_LAST /* Not used. */ |
40 }; | 42 }; |
41 | 43 |
42 static void | 44 static void |
56 | 58 |
57 for (size_t i = 0; apis[i].prefix; ++i) | 59 for (size_t i = 0; apis[i].prefix; ++i) |
58 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) | 60 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) |
59 return apis[i].handler(req); | 61 return apis[i].handler(req); |
60 | 62 |
61 page(req, NULL, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html"); | 63 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); |
62 } | 64 } |
63 | 65 |
64 static const char *pages[] = { | 66 static const char *pages[] = { |
67 [PAGE_INDEX] = "", | |
65 [PAGE_API] = "api" | 68 [PAGE_API] = "api" |
66 }; | 69 }; |
67 | 70 |
68 static void (*handlers[])(struct kreq *req) = { | 71 static void (*handlers[])(struct kreq *req) = { |
72 [PAGE_INDEX] = page_index, | |
69 [PAGE_API] = dispatch_api | 73 [PAGE_API] = dispatch_api |
70 }; | 74 }; |
71 | 75 |
72 static void | 76 static void |
73 process(struct kreq *req) | 77 process(struct kreq *req) |
75 assert(req); | 79 assert(req); |
76 | 80 |
77 log_debug("http: accessing page '%s'", req->path); | 81 log_debug("http: accessing page '%s'", req->path); |
78 | 82 |
79 if (req->page == PAGE_LAST) | 83 if (req->page == PAGE_LAST) |
80 page(req, NULL, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html"); | 84 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); |
81 else | 85 else |
82 handlers[req->page](req); | 86 handlers[req->page](req); |
83 } | 87 } |
84 | 88 |
85 void | 89 void |