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

Author: Peter Dunkley <[email protected]>
Committer: Peter Dunkley <[email protected]>
Date:   Fri Jun 29 23:08:19 2012 +0100

modules/websocket: Make sure that all WebSocket messages are sent on 
connections that already exist

- This is the same as using set_forward_no_connect() and
  set_reply_no_connect() in kamailio.cfg.  But this means it will
  always happen automatically for WebSocket messages.
- This is important as a WebSocket server cannot create connections -
  so we always have to use one that already exists.

---

 modules/websocket/ws_frame.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/modules/websocket/ws_frame.c b/modules/websocket/ws_frame.c
index 66c797f..ca66582 100644
--- a/modules/websocket/ws_frame.c
+++ b/modules/websocket/ws_frame.c
@@ -260,6 +260,11 @@ static int encode_and_send_ws_frame(ws_frame_t *frame, 
conn_close_t conn_close)
                from = &local_addr;
        }
 
+       /* Regardless of what has been set before _always_ use existing
+          connections for WebSockets.  This is required because a WebSocket
+          server (which Kamailio is) CANNOT create connections. */
+       dst.send_flags.f |= SND_F_FORCE_CON_REUSE;
+
        if (tcp_send(&dst, from, send_buf, frame_length) < 0)
        {
                STATS_TX_DROPS;


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

Reply via email to