From 07addc4eeed60db5eec94e206c7f8c679a790a8a Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 11 Dec 2015 15:16:01 +0900 Subject: [PATCH] [Modify] Use first fragment to determine if the fragmented data are compressed --- websocket-sharp/WebSocket.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index 6f083b7f..459062e8 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -80,6 +80,7 @@ namespace WebSocketSharp private bool _enableRedirection; private AutoResetEvent _exitReceiving; private string _extensions; + private bool _fcompressed; private Opcode _fopcode; private object _forConn; private object _forMessageEventQueue; @@ -1116,6 +1117,7 @@ namespace WebSocketSharp return true; _fopcode = frame.Opcode; + _fcompressed = frame.IsCompressed; _fragmentsBuffer = new MemoryStream (); _inContinuation = true; } @@ -1123,7 +1125,7 @@ namespace WebSocketSharp _fragmentsBuffer.WriteBytes (frame.PayloadData.ApplicationData, 1024); if (frame.IsFinal) { using (_fragmentsBuffer) { - var data = _compression != CompressionMethod.None + var data = _fcompressed ? _fragmentsBuffer.DecompressToArray (_compression) : _fragmentsBuffer.ToArray ();