From 446c5176e936c750ea71dddb8184e2facf75509c Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 20 Mar 2015 16:58:40 +0900 Subject: [PATCH] Added the processSecWebSocketExtensionsHeader2 (string) method --- websocket-sharp/WebSocket.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index f36c6d57..3214f275 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -1082,6 +1082,32 @@ namespace WebSocketSharp } } + private void processSecWebSocketExtensionsHeader2 (string value) + { + var buff = new StringBuilder (32); + + var comp = false; + foreach (var val in value.SplitHeaderValue (',')) { + var ext = val.Trim (); + if (!comp && ext.IsCompressionExtension (CompressionMethod.Deflate)) { + _compression = CompressionMethod.Deflate; + var c = ext.Contains ("server_no_context_takeover") + ? _compression.ToExtensionString ( + "server_no_context_takeover", "client_no_context_takeover") + : _compression.ToExtensionString ("client_no_context_takeover"); + + buff.AppendFormat ("{0}, ", c); + comp = true; + } + } + + var len = buff.Length; + if (len > 2) { + buff.Length = len - 2; + _extensions = buff.ToString (); + } + } + private bool processUnsupportedFrame (WebSocketFrame frame, CloseStatusCode code, string reason) { _logger.Debug ("An unsupported frame:" + frame.PrintToString (false));