mirror of
https://github.com/esiur/esiur-dotnet.git
synced 2026-10-24 03:50:57 +00:00
RateControl
This commit is contained in:
1 parent
4f6d2d0801
commit
1ca9fc477b
19 files changed
+879
-146
No files matched your search
@@ -21,7 +21,11 @@ namespace Esiur.Data
|
||||
|
||||
|
||||
|
||||
public static PlainTdu Parse(byte[] data, uint offset, uint ends)
|
||||
public static PlainTdu Parse(
|
||||
byte[] data,
|
||||
uint offset,
|
||||
uint ends,
|
||||
ulong maximumPayloadLength = ulong.MaxValue)
|
||||
{
|
||||
var oOffset = offset;
|
||||
|
||||
@@ -91,6 +95,10 @@ namespace Esiur.Data
|
||||
for (uint i = 0; i < cll; i++)
|
||||
cl = cl << 8 | data[offset++];
|
||||
|
||||
if (cl > maximumPayloadLength)
|
||||
throw new ParserLimitException(
|
||||
$"Declared packet payload of {cl} bytes exceeds the {maximumPayloadLength}-byte limit.");
|
||||
|
||||
if (ends - offset < cl)
|
||||
return new PlainTdu()
|
||||
{
|
||||
@@ -128,6 +136,10 @@ namespace Esiur.Data
|
||||
for (uint i = 0; i < cll; i++)
|
||||
cl = cl << 8 | data[offset++];
|
||||
|
||||
if (cl > maximumPayloadLength)
|
||||
throw new ParserLimitException(
|
||||
$"Declared packet payload of {cl} bytes exceeds the {maximumPayloadLength}-byte limit.");
|
||||
|
||||
if (ends - offset < cl)
|
||||
return new PlainTdu()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user