Mercurial > sci
comparison scid/http.c @ 29:695637f1d8a7
scid: first index page in javascript
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 04 Aug 2022 14:13:58 +0200 |
parents | dae2de19ca5d |
children | 081e1c258e64 |
comparison
equal
deleted
inserted
replaced
28:4c16bb25e4f1 | 29:695637f1d8a7 |
---|---|
32 #include "page-api-jobs.h" | 32 #include "page-api-jobs.h" |
33 #include "page-api-projects.h" | 33 #include "page-api-projects.h" |
34 #include "page-api-todo.h" | 34 #include "page-api-todo.h" |
35 #include "page-api-workers.h" | 35 #include "page-api-workers.h" |
36 #include "page-index.h" | 36 #include "page-index.h" |
37 #include "page.h" | 37 #include "page-static.h" |
38 #include "pageutil.h" | |
38 | 39 |
39 enum page { | 40 enum page { |
40 PAGE_INDEX, /* Job results at index. */ | 41 PAGE_INDEX, /* Job results at index. */ |
41 PAGE_API, | 42 PAGE_API, |
43 PAGE_STATIC, | |
42 PAGE_LAST /* Not used. */ | 44 PAGE_LAST /* Not used. */ |
43 }; | 45 }; |
44 | 46 |
45 static void | 47 static void |
46 dispatch_api(struct kreq *req) | 48 dispatch_api(struct kreq *req) |
59 | 61 |
60 for (size_t i = 0; apis[i].prefix; ++i) | 62 for (size_t i = 0; apis[i].prefix; ++i) |
61 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) | 63 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) |
62 return apis[i].handler(req); | 64 return apis[i].handler(req); |
63 | 65 |
64 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); | 66 pageutil_status(req, KHTTP_404); |
65 } | 67 } |
66 | 68 |
67 static const char *pages[] = { | 69 static const char *pages[] = { |
68 [PAGE_INDEX] = "", | 70 [PAGE_INDEX] = "", |
69 [PAGE_API] = "api" | 71 [PAGE_API] = "api", |
72 [PAGE_STATIC] = "static" | |
70 }; | 73 }; |
71 | 74 |
72 static void (*handlers[])(struct kreq *req) = { | 75 static void (*handlers[])(struct kreq *req) = { |
73 [PAGE_INDEX] = page_index, | 76 [PAGE_INDEX] = page_index, |
74 [PAGE_API] = dispatch_api | 77 [PAGE_API] = dispatch_api, |
78 [PAGE_STATIC] = page_static | |
75 }; | 79 }; |
76 | 80 |
77 static void | 81 static void |
78 process(struct kreq *req) | 82 process(struct kreq *req) |
79 { | 83 { |
80 assert(req); | 84 assert(req); |
81 | 85 |
82 log_debug("http: accessing page '%s'", req->path); | 86 log_debug("http: accessing page '%s'", req->path); |
83 | 87 |
84 if (req->page == PAGE_LAST) | 88 if (req->page == PAGE_LAST) |
85 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); | 89 pageutil_status(req, KHTTP_404); |
86 else | 90 else |
87 handlers[req->page](req); | 91 handlers[req->page](req); |
88 } | 92 } |
89 | 93 |
90 void | 94 void |