Module: sip-router
Branch: master
Commit: 63b50d3b0e3a2250effd9a1aa92b7776854364a6
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=63b50d3b0e3a2250effd9a1aa92b7776854364a6

Author: Peter Dunkley <[email protected]>
Committer: Peter Dunkley <[email protected]>
Date:   Sat Mar 30 11:36:41 2013 +0000

modules/websocket: added some sub-protocol related statistics

---

 modules/websocket/ws_handshake.c |   11 ++++++++++-
 modules/websocket/ws_handshake.h |    2 ++
 modules/websocket/ws_mod.c       |    2 ++
 3 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/modules/websocket/ws_handshake.c b/modules/websocket/ws_handshake.c
index 55dfc34..eb167e4 100644
--- a/modules/websocket/ws_handshake.c
+++ b/modules/websocket/ws_handshake.c
@@ -46,6 +46,8 @@ int ws_sub_protocols = DEFAULT_SUB_PROTOCOLS;
 
 stat_var *ws_failed_handshakes;
 stat_var *ws_successful_handshakes;
+stat_var *ws_sip_handshakes;
+stat_var *ws_msrp_handshakes;
 
 static str str_sip = str_init("sip");
 static str str_msrp = str_init("msrp");
@@ -306,7 +308,14 @@ int ws_handle_handshake(struct sip_msg *msg)
                                        str_hdr_sec_websocket_version.len,
                                        str_hdr_sec_websocket_version.s,
                                        WS_VERSION);
-               ws_send_reply(msg, 400, &str_status_bad_request, &headers);
+               if (ws_send_reply(msg, 400, &str_status_bad_request, &headers)
+                               == 0)
+               {
+                       if (ws_sub_protocols & SUB_PROTOCOL_SIP)
+                               update_stat(ws_sip_handshakes, 1);
+                       else if (ws_sub_protocols & SUB_PROTOCOL_MSRP)
+                               update_stat(ws_msrp_handshakes, 1);
+               }
                return 0;
        }
 
diff --git a/modules/websocket/ws_handshake.h b/modules/websocket/ws_handshake.h
index fa51eb0..94c47ab 100644
--- a/modules/websocket/ws_handshake.h
+++ b/modules/websocket/ws_handshake.h
@@ -38,6 +38,8 @@ extern int ws_sub_protocols;
 
 extern stat_var *ws_failed_handshakes;
 extern stat_var *ws_successful_handshakes;
+extern stat_var *ws_sip_handshakes;
+extern stat_var *ws_msrp_handshakes;
 
 int ws_handle_handshake(struct sip_msg *msg);
 struct mi_root *ws_mi_disable(struct mi_root *cmd, void *param);
diff --git a/modules/websocket/ws_mod.c b/modules/websocket/ws_mod.c
index 7049bfd..df05c0f 100644
--- a/modules/websocket/ws_mod.c
+++ b/modules/websocket/ws_mod.c
@@ -98,6 +98,8 @@ static stat_export_t stats[] =
        /* ws_handshake.c */
        { "ws_failed_handshakes",         0, &ws_failed_handshakes },
        { "ws_successful_handshakes",     0, &ws_successful_handshakes },
+       { "ws_sip_handshakes",            0, &ws_sip_handshakes },
+       { "ws_msrp_handshakes",           0, &ws_msrp_handshakes },
 
        { 0, 0, 0 }
 };


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to