Skip to content
This repository was archived by the owner on Jul 9, 2023. It is now read-only.

Commit 4f43bd1

Browse files
committed
WebSocket IsFinal flad added
1 parent c46293d commit 4f43bd1

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

src/Titanium.Web.Proxy/WebSocketDecoder.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public IEnumerable<WebSocketFrame> Decode(byte[] data, int offset, int count)
3838
}
3939

4040
var opCode = (WebsocketOpCode)(data1[0] & 0xf);
41+
bool isFinal = (data1[0] & 0x80) != 0;
4142
byte b = data1[1];
4243
long size = b & 0x7f;
4344

@@ -61,11 +62,6 @@ public IEnumerable<WebSocketFrame> Decode(byte[] data, int offset, int count)
6162
}
6263
}
6364

64-
if (size < 0)
65-
{
66-
;
67-
}
68-
6965
if (data1.Length < idx + size)
7066
{
7167
break;
@@ -109,7 +105,7 @@ public IEnumerable<WebSocketFrame> Decode(byte[] data, int offset, int count)
109105
}
110106

111107
var frameData = buffer.Slice(idx, (int)size);
112-
var frame = new WebSocketFrame { Data = frameData, OpCode = opCode };
108+
var frame = new WebSocketFrame { IsFinal = isFinal, Data = frameData, OpCode = opCode };
113109
yield return frame;
114110

115111
buffer = buffer.Slice((int)(idx + size));

src/Titanium.Web.Proxy/WebSocketFrame.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ namespace Titanium.Web.Proxy
55
{
66
public class WebSocketFrame
77
{
8+
public bool IsFinal { get; internal set; }
9+
810
public WebsocketOpCode OpCode { get; internal set; }
911

1012
public ReadOnlyMemory<byte> Data { get; internal set; }

0 commit comments

Comments
 (0)