RateControl

This commit is contained in:
2026-07-14 02:27:33 +03:00
parent 4f6d2d0801
commit 1ca9fc477b
19 changed files with 879 additions and 146 deletions
+13 -1
View File
@@ -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()
{