mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Network fixes
This commit is contained in:
parent
e34773579c
commit
c20ab60890
@ -19,6 +19,8 @@
|
||||
|
||||
- (bool)messageProcessed:(int64_t)messageId;
|
||||
- (void)setMessageProcessed:(int64_t)messageId;
|
||||
- (bool)wasMessageSentOnce:(int64_t)messageId;
|
||||
- (void)setMessageWasSentOnce:(int64_t)messageId;
|
||||
- (void)scheduleMessageConfirmation:(int64_t)messageId size:(NSInteger)size;
|
||||
- (NSArray *)scheduledMessageConfirmations;
|
||||
- (bool)scheduledMessageConfirmationsExceedSize:(NSInteger)sizeLimit orCount:(NSUInteger)countLimit;
|
||||
|
@ -1148,7 +1148,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
{
|
||||
if (!_useUnauthorizedMode)
|
||||
{
|
||||
NSMutableArray *currentContainerMessages = [[NSMutableArray alloc] init];
|
||||
NSMutableArray<MTPreparedMessage *> *currentContainerMessages = [[NSMutableArray alloc] init];
|
||||
NSUInteger currentContainerSize = 0;
|
||||
|
||||
for (NSUInteger j = i; j < transactionMessageList.count; j++, i++)
|
||||
@ -1186,8 +1186,9 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentContainerMessages.count == 1)
|
||||
if (currentContainerMessages.count == 1 && ![transactionSessionInfo wasMessageSentOnce:currentContainerMessages[0].messageId])
|
||||
{
|
||||
[transactionSessionInfo setMessageWasSentOnce:currentContainerMessages[0].messageId];
|
||||
int32_t quickAckId = 0;
|
||||
NSData *messageData = [self _dataForEncryptedMessage:currentContainerMessages[0] authKey:authKey sessionInfo:transactionSessionInfo quickAckId:&quickAckId address:scheme.address extendedPadding:extendedPadding];
|
||||
if (messageData != nil)
|
||||
@ -2116,17 +2117,12 @@ static bool isDataEqualToDataConstTime(NSData *data1, NSData *data2) {
|
||||
if (data1.length != data2.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t const *bytes1 = data1.bytes;
|
||||
uint8_t const *bytes2 = data2.bytes;
|
||||
|
||||
int result = 0;
|
||||
for (int i = 0; i < data1.length; i++) {
|
||||
if (bytes1[i] != bytes2[i]) {
|
||||
result |= i + 1;
|
||||
result |= bytes1[i] != bytes2[i];
|
||||
}
|
||||
}
|
||||
|
||||
return result == 0;
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
NSMutableSet *_processedMessageIdsSet;
|
||||
NSMutableArray *_scheduledMessageConfirmations;
|
||||
NSMutableDictionary *_containerMessagesMappingDict;
|
||||
NSMutableSet *_sentMessageIdsSet;
|
||||
}
|
||||
|
||||
@end
|
||||
@ -76,6 +77,7 @@
|
||||
_scheduledMessageConfirmations = [[NSMutableArray alloc] init];
|
||||
|
||||
_processedMessageIdsSet = [[NSMutableSet alloc] init];
|
||||
_sentMessageIdsSet = [[NSMutableSet alloc] init];
|
||||
_containerMessagesMappingDict = [[NSMutableDictionary alloc] init];
|
||||
}
|
||||
return self;
|
||||
@ -138,6 +140,14 @@
|
||||
[_processedMessageIdsSet addObject:@(messageId)];
|
||||
}
|
||||
|
||||
- (bool)wasMessageSentOnce:(int64_t)messageId {
|
||||
return [_sentMessageIdsSet containsObject:@(messageId)];
|
||||
}
|
||||
|
||||
- (void)setMessageWasSentOnce:(int64_t)messageId {
|
||||
[_sentMessageIdsSet addObject:@(messageId)];
|
||||
}
|
||||
|
||||
- (void)scheduleMessageConfirmation:(int64_t)messageId size:(NSInteger)size
|
||||
{
|
||||
bool found = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user