Makes sure send file releases resources on close

PUBLISHED_FROM=451d2dd0b55b9fd7dea441a9279f54d0005c97b1
This commit is contained in:
Marko Mikulicic 2015-09-25 12:10:39 +01:00 committed by Sergey Lyubka
parent 3a9a9c7ad0
commit 22f8d86b05

View File

@ -4030,15 +4030,16 @@ static void http_handler(struct mg_connection *nc, int ev, void *ev_data) {
#ifndef MG_DISABLE_HTTP_WEBSOCKET
struct mg_str *vec;
#endif
/*
* For HTTP messages without Content-Length, always send HTTP message
* before MG_EV_CLOSE message.
*/
if (ev == MG_EV_CLOSE && io->len > 0 &&
mg_parse_http(io->buf, io->len, &hm, is_req) > 0) {
hm.message.len = io->len;
hm.body.len = io->buf + io->len - hm.body.p;
nc->handler(nc, is_req ? MG_EV_HTTP_REQUEST : MG_EV_HTTP_REPLY, &hm);
if (ev == MG_EV_CLOSE) {
/*
* For HTTP messages without Content-Length, always send HTTP message
* before MG_EV_CLOSE message.
*/
if (io->len > 0 && mg_parse_http(io->buf, io->len, &hm, is_req) > 0) {
hm.message.len = io->len;
hm.body.len = io->buf + io->len - hm.body.p;
nc->handler(nc, is_req ? MG_EV_HTTP_REQUEST : MG_EV_HTTP_REPLY, &hm);
}
free_http_proto_data(nc);
}