fix: Correctly detect server injection frame for flutter web.

This commit is contained in:
cloudwebrtc
2023-04-28 10:40:00 +08:00
parent 26947e96d6
commit 79a2351ee8
4 changed files with 50 additions and 36 deletions
+5 -2
View File
@@ -500,10 +500,13 @@ class FrameCryptor {
if (keyOptions.uncryptedMagicBytes != null) {
var magicBytes = keyOptions.uncryptedMagicBytes!;
if (buffer.length >= magicBytes.length + 1) {
if (buffer.length > magicBytes.length + 1) {
var magicBytesBuffer = buffer.sublist(
buffer.length - (magicBytes.length + 1), magicBytes.length);
buffer.length - magicBytes.length - 1, buffer.length - 1);
//print('magicBytesBuffer $magicBytesBuffer, magicBytes $magicBytes, ');
if (magicBytesBuffer.toString() == magicBytes.toString()) {
var frameType = buffer.sublist(buffer.length - 1)[0];
print('skip uncrypted frame, type $frameType');
var finalBuffer = BytesBuilder();
finalBuffer.add(Uint8List.fromList(
buffer.sublist(0, buffer.length - (magicBytes.length + 1))));