Module: sip-router Branch: pd/websocket Commit: 353ad95af22d7a4c7d20aebbed291fef085867ba URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=353ad95a...
Author: Peter Dunkley peter.dunkley@crocodile-rcs.com Committer: Peter Dunkley peter.dunkley@crocodile-rcs.com Date: Fri Jun 29 17:47:22 2012 +0100
modules/websockets: Changes WS to be a protocol in its own right instead of a flag on TCP/TLS connections
---
modules/websocket/ws_handshake.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/modules/websocket/ws_handshake.c b/modules/websocket/ws_handshake.c index ecc8fad..4bacd61 100644 --- a/modules/websocket/ws_handshake.c +++ b/modules/websocket/ws_handshake.c @@ -133,6 +133,12 @@ int ws_handle_handshake(struct sip_msg *msg) return 0; }
+ if (con->type != PROTO_TCP && con->type != PROTO_TLS) + { + LM_ERR("unsupported transport: %d", con->type); + return 0; + } + /* Process HTTP headers */ while (hdr != NULL) { @@ -304,7 +310,10 @@ int ws_handle_handshake(struct sip_msg *msg)
/* Make sure Kamailio core sends future messages on this connection directly to this module */ - con->flags |= F_CONN_WS; + if (con->type == PROTO_TLS) + con->type = con->rcv.proto = PROTO_WSS; + else + con->type = con->rcv.proto = PROTO_WS;
return 0; }