From abcea076411a0d6d6622fabf2b0a49fd2d4b4e6d Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Wed, 11 Jun 2014 20:37:35 +0100
Subject: [PATCH] Fix #373

---
 mongoose.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/mongoose.c b/mongoose.c
index 82b27ddba..b75296856 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -2712,6 +2712,12 @@ size_t mg_websocket_write(struct mg_connection* conn, int opcode,
       free(copy);
     }
 
+    // If we send closing frame, schedule a connection to be closed after
+    // data is drained to the client.
+    if (opcode == WEBSOCKET_OPCODE_CONNECTION_CLOSE) {
+      MG_CONN_2_CONN(conn)->ns_conn->flags |= NSF_FINISHED_SENDING_DATA;
+    }
+
     return MG_CONN_2_CONN(conn)->ns_conn->send_iobuf.len;
 }
 
-- 
GitLab