core-legacy/handlers/connection.c
Tobias Reisinger f040cd8b21 add: schedule tags endpoint
fix: memory leak for string args
2020-05-06 10:53:42 +02:00

36 lines
990 B
C

#include <mongoose.h>
#include <logger.h>
#include <router.h>
#include <handlers.h>
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);
}
}