Merge pull request #1792 from famedly/krille/revert-check-size
revert: Check size before fake sync
This commit is contained in:
commit
55388da505
|
|
@ -942,11 +942,24 @@ class Room {
|
||||||
|
|
||||||
Future<String?> _sendContent(
|
Future<String?> _sendContent(
|
||||||
String type,
|
String type,
|
||||||
Map<String, dynamic> sendMessageContent, {
|
Map<String, dynamic> content, {
|
||||||
String? txid,
|
String? txid,
|
||||||
}) async {
|
}) async {
|
||||||
txid ??= client.generateUniqueTransactionId();
|
txid ??= client.generateUniqueTransactionId();
|
||||||
|
|
||||||
|
final mustEncrypt = encrypted && client.encryptionEnabled;
|
||||||
|
|
||||||
|
final sendMessageContent = mustEncrypt
|
||||||
|
? await client.encryption!
|
||||||
|
.encryptGroupMessagePayload(id, content, type: type)
|
||||||
|
: content;
|
||||||
|
|
||||||
|
final utf8EncodedJsonLength =
|
||||||
|
utf8.encode(jsonEncode(sendMessageContent)).length;
|
||||||
|
|
||||||
|
if (utf8EncodedJsonLength > maxPDUSize) {
|
||||||
|
throw EventTooLarge(utf8EncodedJsonLength);
|
||||||
|
}
|
||||||
return await client.sendMessage(
|
return await client.sendMessage(
|
||||||
id,
|
id,
|
||||||
sendMessageContent.containsKey('ciphertext')
|
sendMessageContent.containsKey('ciphertext')
|
||||||
|
|
@ -1059,21 +1072,6 @@ class Room {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final sentDate = DateTime.now();
|
final sentDate = DateTime.now();
|
||||||
|
|
||||||
final mustEncrypt = encrypted && client.encryptionEnabled;
|
|
||||||
|
|
||||||
final sendMessageContent = mustEncrypt
|
|
||||||
? await client.encryption!
|
|
||||||
.encryptGroupMessagePayload(id, content, type: type)
|
|
||||||
: content;
|
|
||||||
|
|
||||||
final utf8EncodedJsonLength =
|
|
||||||
utf8.encode(jsonEncode(sendMessageContent)).length;
|
|
||||||
|
|
||||||
if (utf8EncodedJsonLength > maxPDUSize) {
|
|
||||||
throw EventTooLarge(utf8EncodedJsonLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
final syncUpdate = SyncUpdate(
|
final syncUpdate = SyncUpdate(
|
||||||
nextBatch: '',
|
nextBatch: '',
|
||||||
rooms: RoomsUpdate(
|
rooms: RoomsUpdate(
|
||||||
|
|
@ -1113,11 +1111,13 @@ class Room {
|
||||||
try {
|
try {
|
||||||
res = await _sendContent(
|
res = await _sendContent(
|
||||||
type,
|
type,
|
||||||
sendMessageContent,
|
content,
|
||||||
txid: messageID,
|
txid: messageID,
|
||||||
);
|
);
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
if (e is MatrixException &&
|
if (e is EventTooLarge) {
|
||||||
|
rethrow;
|
||||||
|
} else if (e is MatrixException &&
|
||||||
e.retryAfterMs != null &&
|
e.retryAfterMs != null &&
|
||||||
!DateTime.now()
|
!DateTime.now()
|
||||||
.add(Duration(milliseconds: e.retryAfterMs!))
|
.add(Duration(milliseconds: e.retryAfterMs!))
|
||||||
|
|
|
||||||
|
|
@ -1459,7 +1459,7 @@ class CallSession {
|
||||||
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
||||||
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall ? EventTypes.GroupCallMemberInvite : EventTypes.CallInvite,
|
isGroupCall ? EventTypes.GroupCallMemberInvite : EventTypes.CallInvite,
|
||||||
content,
|
content,
|
||||||
|
|
@ -1487,7 +1487,7 @@ class CallSession {
|
||||||
'selected_party_id': selected_party_id,
|
'selected_party_id': selected_party_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberSelectAnswer
|
? EventTypes.GroupCallMemberSelectAnswer
|
||||||
|
|
@ -1510,7 +1510,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
};
|
};
|
||||||
|
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall ? EventTypes.GroupCallMemberReject : EventTypes.CallReject,
|
isGroupCall ? EventTypes.GroupCallMemberReject : EventTypes.CallReject,
|
||||||
content,
|
content,
|
||||||
|
|
@ -1540,7 +1540,7 @@ class CallSession {
|
||||||
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
||||||
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberNegotiate
|
? EventTypes.GroupCallMemberNegotiate
|
||||||
|
|
@ -1585,7 +1585,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
'candidates': candidates,
|
'candidates': candidates,
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberCandidates
|
? EventTypes.GroupCallMemberCandidates
|
||||||
|
|
@ -1617,7 +1617,7 @@ class CallSession {
|
||||||
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
if (capabilities != null) 'capabilities': capabilities.toJson(),
|
||||||
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
if (metadata != null) sdpStreamMetadataKey: metadata.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall ? EventTypes.GroupCallMemberAnswer : EventTypes.CallAnswer,
|
isGroupCall ? EventTypes.GroupCallMemberAnswer : EventTypes.CallAnswer,
|
||||||
content,
|
content,
|
||||||
|
|
@ -1639,7 +1639,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
if (hangupCause != null) 'reason': hangupCause,
|
if (hangupCause != null) 'reason': hangupCause,
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall ? EventTypes.GroupCallMemberHangup : EventTypes.CallHangup,
|
isGroupCall ? EventTypes.GroupCallMemberHangup : EventTypes.CallHangup,
|
||||||
content,
|
content,
|
||||||
|
|
@ -1671,7 +1671,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
sdpStreamMetadataKey: metadata.toJson(),
|
sdpStreamMetadataKey: metadata.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberSDPStreamMetadataChanged
|
? EventTypes.GroupCallMemberSDPStreamMetadataChanged
|
||||||
|
|
@ -1697,7 +1697,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
...callReplaces.toJson(),
|
...callReplaces.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberReplaces
|
? EventTypes.GroupCallMemberReplaces
|
||||||
|
|
@ -1723,7 +1723,7 @@ class CallSession {
|
||||||
'version': version,
|
'version': version,
|
||||||
'asserted_identity': assertedIdentity.toJson(),
|
'asserted_identity': assertedIdentity.toJson(),
|
||||||
};
|
};
|
||||||
return await _sendCallContent(
|
return await _sendContent(
|
||||||
room,
|
room,
|
||||||
isGroupCall
|
isGroupCall
|
||||||
? EventTypes.GroupCallMemberAssertedIdentity
|
? EventTypes.GroupCallMemberAssertedIdentity
|
||||||
|
|
@ -1733,7 +1733,7 @@ class CallSession {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String?> _sendCallContent(
|
Future<String?> _sendContent(
|
||||||
Room room,
|
Room room,
|
||||||
String type,
|
String type,
|
||||||
Map<String, Object> content, {
|
Map<String, Object> content, {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue