From fa216849e5a7c9d6560150610c4163e7efb58d9d Mon Sep 17 00:00:00 2001 From: Sergey Lyubka <valenok@gmail.com> Date: Sat, 4 Jan 2014 22:17:16 +0000 Subject: [PATCH] Resetting connection flags in close_local_endpoint() --- mongoose.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mongoose.c b/mongoose.c index f4b4306f7..d718ec497 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1900,6 +1900,10 @@ static int find_index_file(struct connection *conn, char *path, return found; } +static void write_terminating_chunk(struct connection *conn) { + mg_write(&conn->mg_conn, "0\r\n\r\n", 5); +} + static void call_uri_handler_if_data_is_buffered(struct connection *conn) { struct iobuf *loc = &conn->local_iobuf; struct mg_connection *c = &conn->mg_conn; @@ -1913,7 +1917,7 @@ static void call_uri_handler_if_data_is_buffered(struct connection *conn) { if (loc->len >= c->content_len) { conn->endpoint.uh->handler(c); if (conn->flags & CONN_HEADERS_SENT) { - write_chunk(conn, "", 0); // Write final zero-length chunk + write_terminating_chunk(conn); } close_local_endpoint(conn); } @@ -2187,7 +2191,7 @@ static void send_directory_listing(struct connection *conn, const char *dir) { } free(arr); - write_chunk(conn, "", 0); // Write final zero-length chunk + write_terminating_chunk(conn); close_local_endpoint(conn); } #endif // NO_DIRECTORY_LISTING @@ -3294,6 +3298,7 @@ static void close_local_endpoint(struct connection *conn) { #endif conn->endpoint_type = EP_NONE; + conn->flags = 0; conn->cl = conn->num_bytes_sent = conn->request_len = 0; free(conn->request); conn->request = NULL; -- GitLab