The Blog
This commit is contained in:
18
main.c
18
main.c
@ -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)
|
||||
|
Reference in New Issue
Block a user