Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EnsureFullTlsFrameAsync< TIOAdapter >()

async ValueTask< int > System.Net.Security.SslStream.EnsureFullTlsFrameAsync< TIOAdapter > ( TIOAdapter adapter)
inlineprivate
Type Constraints
TIOAdapter :IReadWriteAdapter 

Definition at line 1497 of file SslStream.cs.

1497 : IReadWriteAdapter
1498 {
1499 if (HaveFullTlsFrame(out var frameSize))
1500 {
1501 return frameSize;
1502 }
1504 while (_internalBufferCount < frameSize)
1505 {
1506 int num = await adapter.ReadAsync(_internalBuffer.AsMemory(_internalBufferCount)).ConfigureAwait(continueOnCapturedContext: false);
1507 if (num == 0)
1508 {
1509 if (_internalBufferCount != 0)
1510 {
1511 throw new IOException(System.SR.net_io_eof);
1512 }
1513 return 0;
1514 }
1515 _internalBufferCount += num;
1516 if (frameSize == int.MaxValue && _internalBufferCount > 5)
1517 {
1518 frameSize = GetFrameSize(_internalBuffer.AsSpan(_internalOffset));
1519 }
1520 }
1521 return frameSize;
1522 }
int GetFrameSize(ReadOnlySpan< byte > buffer)
bool HaveFullTlsFrame(out int frameSize)
static string net_io_eof
Definition SR.cs:40
Definition SR.cs:7

References System.Net.Security.SslStream._internalBuffer, System.Net.Security.SslStream._internalBufferCount, System.Net.Security.SslStream._internalOffset, System.Net.Security.SslStream.GetFrameSize(), System.Net.Security.SslStream.HaveFullTlsFrame(), System.SR.net_io_eof, and System.Net.Security.SslStream.ResetReadBuffer().