public override int Read(byte[] buf, int off, int len) { int bytesToRead = System.Math.Min(buffer.Available, len); buffer.RemoveData(buf, off, bytesToRead, 0); return(bytesToRead); }
private int ReceiveRecord(byte[] buf, int off, int len, int waitMillis) { if (mRecordQueue.Available > 0) { int length = 0; if (mRecordQueue.Available >= RECORD_HEADER_LENGTH) { byte[] lengthBytes = new byte[2]; mRecordQueue.Read(lengthBytes, 0, 2, 11); length = TlsUtilities.ReadUint16(lengthBytes, 0); } int received = System.Math.Min(mRecordQueue.Available, RECORD_HEADER_LENGTH + length); mRecordQueue.RemoveData(buf, off, received, 0); return(received); } { int received = mTransport.Receive(buf, off, len, waitMillis); if (received >= RECORD_HEADER_LENGTH) { int fragmentLength = TlsUtilities.ReadUint16(buf, off + 11); int recordLength = RECORD_HEADER_LENGTH + fragmentLength; if (received > recordLength) { mRecordQueue.AddData(buf, off + recordLength, received - recordLength); received = recordLength; } } return(received); } }