#include #include #include #include void handler_connection(struct mg_connection *c, int ev, void *p) { if (ev == MG_EV_HTTP_REQUEST) { LOG_DEBUG("new http request\n"); struct http_message *hm = (struct http_message *) p; endpoint_t *endpoint = router_find_endpoint(hm->uri.p, hm->uri.len, &hm->method); if(endpoint && endpoint->func) { endpoint->func(c, endpoint->args, p); for(int i = 0; i < endpoint->args_count; ++i) { if(endpoint->args[i].type == ENDPOINT_ARG_TYPE_STR) { free((char*)endpoint->args[i].value.v_str); } } } else { mg_send_head(c, 501, 0, "Content-Type: text/plain"); } //mg_printf(c, "%.*s", (int)hm->message.len, hm->message.p); //mg_printf(c, "%.*s", (int)hm->body.len, hm->body.p); } }