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

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

core: Make sure that responses to requests received on a WebSocket are sent on 
existing connections

- WebSocket servers cannot create connections to WebSocket clients - so
  this setting is essential.
- It does exactly the same thing as using set_reply_no_connect() in
  kamailio.cfg - but this way it is always on (as it must be) for
  WebSockets.

---

 receive.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/receive.c b/receive.c
index 4426b6d..9c53e0e 100644
--- a/receive.c
+++ b/receive.c
@@ -172,9 +172,9 @@ int receive_msg(char* buf, unsigned int len, struct 
receive_info* rcv_info)
                /* check for the alias stuff */
 #ifdef USE_TCP
                if (msg->via1->alias && cfg_get(tcp, tcp_cfg, accept_aliases) 
&& 
-                               (((rcv_info->proto==PROTO_TCP) && !tcp_disable)
+                               (((rcv_info->proto==PROTO_TCP || 
rcv_info->proto==PROTO_WS) && !tcp_disable)
 #ifdef USE_TLS
-                                       || ((rcv_info->proto==PROTO_TLS) && 
!tls_disable)
+                                       || ((rcv_info->proto==PROTO_TLS || 
rcv_info->proto==PROTO_WSS) && !tls_disable)
 #endif
                                )
                        ){
@@ -185,7 +185,12 @@ int receive_msg(char* buf, unsigned int len, struct 
receive_info* rcv_info)
                        }
                }
 #endif
-                       
+
+               /* Force connection reuse for responses if the message arrived 
on a
+                  WebSocket */
+               if (rcv_info->proto==PROTO_WS || rcv_info->proto==PROTO_WSS)
+                       msg->rpl_send_flags.f |= SND_F_FORCE_CON_REUSE;
+
        /*      skip: */
                DBG("preparing to run routing scripts...\n");
 #ifdef  STATS


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

Reply via email to