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;
|
- (bool)messageProcessed:(int64_t)messageId;
|
||||||
- (void)setMessageProcessed:(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;
|
- (void)scheduleMessageConfirmation:(int64_t)messageId size:(NSInteger)size;
|
||||||
- (NSArray *)scheduledMessageConfirmations;
|
- (NSArray *)scheduledMessageConfirmations;
|
||||||
- (bool)scheduledMessageConfirmationsExceedSize:(NSInteger)sizeLimit orCount:(NSUInteger)countLimit;
|
- (bool)scheduledMessageConfirmationsExceedSize:(NSInteger)sizeLimit orCount:(NSUInteger)countLimit;
|
||||||
|
@ -1148,7 +1148,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
|||||||
{
|
{
|
||||||
if (!_useUnauthorizedMode)
|
if (!_useUnauthorizedMode)
|
||||||
{
|
{
|
||||||
NSMutableArray *currentContainerMessages = [[NSMutableArray alloc] init];
|
NSMutableArray<MTPreparedMessage *> *currentContainerMessages = [[NSMutableArray alloc] init];
|
||||||
NSUInteger currentContainerSize = 0;
|
NSUInteger currentContainerSize = 0;
|
||||||
|
|
||||||
for (NSUInteger j = i; j < transactionMessageList.count; j++, i++)
|
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;
|
int32_t quickAckId = 0;
|
||||||
NSData *messageData = [self _dataForEncryptedMessage:currentContainerMessages[0] authKey:authKey sessionInfo:transactionSessionInfo quickAckId:&quickAckId address:scheme.address extendedPadding:extendedPadding];
|
NSData *messageData = [self _dataForEncryptedMessage:currentContainerMessages[0] authKey:authKey sessionInfo:transactionSessionInfo quickAckId:&quickAckId address:scheme.address extendedPadding:extendedPadding];
|
||||||
if (messageData != nil)
|
if (messageData != nil)
|
||||||
@ -2116,17 +2117,12 @@ static bool isDataEqualToDataConstTime(NSData *data1, NSData *data2) {
|
|||||||
if (data1.length != data2.length) {
|
if (data1.length != data2.length) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t const *bytes1 = data1.bytes;
|
uint8_t const *bytes1 = data1.bytes;
|
||||||
uint8_t const *bytes2 = data2.bytes;
|
uint8_t const *bytes2 = data2.bytes;
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
for (int i = 0; i < data1.length; i++) {
|
for (int i = 0; i < data1.length; i++) {
|
||||||
if (bytes1[i] != bytes2[i]) {
|
result |= bytes1[i] != bytes2[i];
|
||||||
result |= i + 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result == 0;
|
return result == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
NSMutableSet *_processedMessageIdsSet;
|
NSMutableSet *_processedMessageIdsSet;
|
||||||
NSMutableArray *_scheduledMessageConfirmations;
|
NSMutableArray *_scheduledMessageConfirmations;
|
||||||
NSMutableDictionary *_containerMessagesMappingDict;
|
NSMutableDictionary *_containerMessagesMappingDict;
|
||||||
|
NSMutableSet *_sentMessageIdsSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
@ -76,6 +77,7 @@
|
|||||||
_scheduledMessageConfirmations = [[NSMutableArray alloc] init];
|
_scheduledMessageConfirmations = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
_processedMessageIdsSet = [[NSMutableSet alloc] init];
|
_processedMessageIdsSet = [[NSMutableSet alloc] init];
|
||||||
|
_sentMessageIdsSet = [[NSMutableSet alloc] init];
|
||||||
_containerMessagesMappingDict = [[NSMutableDictionary alloc] init];
|
_containerMessagesMappingDict = [[NSMutableDictionary alloc] init];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
@ -138,6 +140,14 @@
|
|||||||
[_processedMessageIdsSet addObject:@(messageId)];
|
[_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
|
- (void)scheduleMessageConfirmation:(int64_t)messageId size:(NSInteger)size
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user