Procházet zdrojové kódy

Add debug traces to improve websocket connection analysis

bel2125 před 7 roky
rodič
revize
55efefb471
1 změnil soubory, kde provedl 21 přidání a 3 odebrání
  1. 21 3
      src/civetweb.c

+ 21 - 3
src/civetweb.c

@@ -11483,6 +11483,10 @@ read_websocket(struct mg_connection *conn,
 		timeout = atoi(conn->dom_ctx->config[REQUEST_TIMEOUT]) / 1000.0;
 	}
 
+	/* Enter data processing loop */
+	DEBUG_TRACE("Websocket connection %s:%u start data processing loop",
+	            conn->request_info.remote_addr,
+	            conn->request_info.remote_port);
 	conn->in_websocket_handling = 1;
 	mg_set_thread_name("wsock");
 
@@ -11654,9 +11658,17 @@ read_websocket(struct mg_connection *conn,
 				mg_free(data);
 			}
 
-			if (exit_by_callback
-			    || ((mop & 0xf) == MG_WEBSOCKET_OPCODE_CONNECTION_CLOSE)) {
+			if (exit_by_callback) {
+				DEBUG_TRACE("Callback requests to close connection from %s:%u",
+				            conn->request_info.remote_addr,
+				            conn->request_info.remote_port);
+				break;
+			}
+			if ((mop & 0xf) == MG_WEBSOCKET_OPCODE_CONNECTION_CLOSE) {
 				/* Opcode == 8, connection close */
+				DEBUG_TRACE("Message requests to close connection from %s:%u",
+				            conn->request_info.remote_addr,
+				            conn->request_info.remote_port);
 				break;
 			}
 
@@ -11671,7 +11683,9 @@ read_websocket(struct mg_connection *conn,
 			               timeout);
 			if (n <= -2) {
 				/* Error, no bytes read */
-				DEBUG_TRACE("PULL failed (%i)", n);
+				DEBUG_TRACE("PULL from %s:%u failed",
+				            conn->request_info.remote_addr,
+				            conn->request_info.remote_port);
 				break;
 			}
 			if (n > 0) {
@@ -11701,8 +11715,12 @@ read_websocket(struct mg_connection *conn,
 		}
 	}
 
+	/* Leave data processing loop */
 	mg_set_thread_name("worker");
 	conn->in_websocket_handling = 0;
+	DEBUG_TRACE("Websocket connection %s:%u left data processing loop",
+	            conn->request_info.remote_addr,
+	            conn->request_info.remote_port);
 }