[sr-dev] git:pd/websocket: modules/websocket: More tidying up

Peter Dunkley peter.dunkley at crocodile-rcs.com
Thu Jun 21 18:37:31 CEST 2012


Module: sip-router
Branch: pd/websocket
Commit: 76f15b97d60b0e1c2c22fabc6c7310b33ad80742
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=76f15b97d60b0e1c2c22fabc6c7310b33ad80742

Author: Peter Dunkley <peter.dunkley at crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley at crocodile-rcs.com>
Date:   Thu Jun 21 17:37:08 2012 +0100

modules/websocket: More tidying up

---

 modules/websocket/ws_conn.c |    8 ++++----
 modules/websocket/ws_mod.c  |   16 ++++++++++++----
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/modules/websocket/ws_conn.c b/modules/websocket/ws_conn.c
index 5f5dcf9..ba3dcc8 100644
--- a/modules/websocket/ws_conn.c
+++ b/modules/websocket/ws_conn.c
@@ -31,10 +31,10 @@ gen_lock_t *wsconn_lock = NULL;
 
 char *wsconn_state_str[] =
 {
-	"CONNECTING",
-	"OPEN",
-	"CLOSING",
-	"CLOSED"
+	"CONNECTING",	/* WS_S_CONNECTING */
+	"OPEN",		/* WS_S_OPEN */
+	"CLOSING",	/* WS_S_CLOSING */
+	"CLOSED"	/* WS_S_CLOSED */
 };
 
 static inline void _wsconn_rm(ws_connection_t *wsc);
diff --git a/modules/websocket/ws_mod.c b/modules/websocket/ws_mod.c
index 5f5c67b..46fc5d0 100644
--- a/modules/websocket/ws_mod.c
+++ b/modules/websocket/ws_mod.c
@@ -39,6 +39,9 @@
 
 MODULE_VERSION
 
+/* Maximum number of connections to display when using the ws.dump MI command */
+#define MAX_WS_CONNS_DUMP	50
+
 extern gen_lock_t *tcpconn_lock;
 extern struct tcp_connection **tcpconn_id_hash;
 
@@ -197,7 +200,7 @@ static void destroy(void)
 
 static struct mi_root *mi_dump(struct mi_root *cmd, void *param)
 {
-	int h, connections = 0, interval;
+	int h, connections = 0, truncated = 0, interval;
 	char *src_proto, *dst_proto;
 	char src_ip[IP6_MAX_STR_SIZE + 1], dst_ip[IP6_MAX_STR_SIZE + 1];
 	ws_connection_t *wsc;
@@ -243,7 +246,11 @@ static struct mi_root *mi_dump(struct mi_root *cmd, void *param)
 						interval) == 0)
 					return 0;
 
-				connections++;
+				if (++connections == MAX_WS_CONNS_DUMP)
+				{
+					truncated = 1;
+					break;
+				}
 			}
 
 			wsc = wsc->next;
@@ -252,8 +259,9 @@ static struct mi_root *mi_dump(struct mi_root *cmd, void *param)
 	WSCONN_UNLOCK;
 
 	if (addf_mi_node_child(&rpl_tree->node, 0, 0, 0,
-				"%d WebSocket connection%s found",
-				connections, connections == 1 ? "" : "s") == 0)
+				"%d WebSocket connection%s found%s",
+				connections, connections == 1 ? "" : "s",
+				truncated == 1 ? "(truncated)" : "") == 0)
 		return 0;
 
 	return rpl_tree;




More information about the sr-dev mailing list