From 70ce6c5ad3ecbdbb30e10efe98eec7824eb7883e Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Fri, 12 Jul 2013 11:55:52 +0100
Subject: [PATCH] Added comments to read_websocket(), per morgan3d pull request

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

diff --git a/mongoose.c b/mongoose.c
index 73c081caa..41792be4a 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3987,14 +3987,27 @@ static void send_websocket_handshake(struct mg_connection *conn) {
 }
 
 static void read_websocket(struct mg_connection *conn) {
+  // Pointer to the beginning of the portion of the incoming websocket message
+  // queue. The original websocket upgrade request is never removed,
+  // so the queue begins after it.
   unsigned char *buf = (unsigned char *) conn->buf + conn->request_len;
   int bits, n, stop = 0;
   size_t i, len, mask_len, data_len, header_len, body_len;
+  // data points to the place where the message is stored when passed to the
+  // websocket_data callback. This is either mem on the stack,
+  // or a dynamically allocated buffer if it is too large.
   char mem[4 * 1024], mask[4], *data;
 
   assert(conn->content_len == 0);
+
+  // Loop continuously, reading messages from the socket, invoking the callback,
+  // and waiting repeatedly until an error occurs.
   while (!stop) {
     header_len = 0;
+    // body_len is the length of the entire queue in bytes
+    // len is the length of the current message
+    // data_len is the length of the current message's data payload
+    // header_len is the length of the current message's header
     if ((body_len = conn->data_len - conn->request_len) >= 2) {
       len = buf[1] & 127;
       mask_len = buf[1] & 128 ? 4 : 0;
-- 
GitLab