This commit is contained in:
kamkow1
2025-06-18 00:44:18 +02:00
parent 9bb248ee03
commit 5db22711be
11 changed files with 286 additions and 25 deletions

18
main.c
View File

@ -37,10 +37,10 @@ void *route_thread_function(void *param)
char key[MG_PATH_MAX] = {0};
strncpy(key, http_msg.uri.buf, http_msg.uri.len);
Route_Handler handler = shget(route_hashtable, key);
ssize_t idx = shgeti(route_hashtable, key);
Route_Result result = {0};
handler(&http_msg, &result);
route_hashtable[idx].value(&http_msg, &result, route_hashtable[idx].context_data);
mg_wakeup(data->mgr, data->conn_id, &result, sizeof(result));
free(data->message.buf);
@ -91,6 +91,20 @@ void init_route_hashtable(void)
shput(route_hashtable, "/hotreload.js", &route_hotreload_js);
shput(route_hashtable, "/", &route_home);
shput(route_hashtable, "/build-id", &route_build_id);
shput(route_hashtable, "/blog", &route_blog);
void put_blogs(Baked_Resource *resource)
{
if ((strlen(resource->key) >= strlen("blog-"))
&& strncmp(resource->key, "blog-", strlen("blog-")) == 0) {
char *path = malloc(MG_PATH_MAX);
snprintf(path, MG_PATH_MAX, "/%s", resource->key);
shput(route_hashtable, path, &route_generic_blog);
route_hashtable[shgeti(route_hashtable, path)].context_data = (void *)resource;
}
}
baked_resource_each(&put_blogs);
}
int main(int argc, char ** argv)