From d08dcacfdac8ed8097671d4e7ac3387e67bcb8f2 Mon Sep 17 00:00:00 2001 From: Mikhail Filimonov Date: Thu, 4 Jul 2024 17:11:36 -0300 Subject: [PATCH] attempt to fix expired key for mtproto --- .../MtProtoKit/MTBindKeyMessageService.h | 1 + .../MtProtoKit/Sources/MTBindKeyMessageService.m | 4 ++++ submodules/MtProtoKit/Sources/MTContext.m | 2 +- submodules/MtProtoKit/Sources/MTProto.m | 13 +++++++++++-- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTBindKeyMessageService.h b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTBindKeyMessageService.h index 9e5771a203..8e2fd4e958 100644 --- a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTBindKeyMessageService.h +++ b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTBindKeyMessageService.h @@ -6,4 +6,5 @@ - (instancetype)initWithPersistentKey:(MTDatacenterAuthKey *)persistentKey ephemeralKey:(MTDatacenterAuthKey *)ephemeralKey completion:(void (^)(bool))completion; +-(void)complete; @end diff --git a/submodules/MtProtoKit/Sources/MTBindKeyMessageService.m b/submodules/MtProtoKit/Sources/MTBindKeyMessageService.m index 137b2ce408..81444d51ab 100644 --- a/submodules/MtProtoKit/Sources/MTBindKeyMessageService.m +++ b/submodules/MtProtoKit/Sources/MTBindKeyMessageService.m @@ -168,4 +168,8 @@ } } +-(void)complete { + _completion(true); +} + @end diff --git a/submodules/MtProtoKit/Sources/MTContext.m b/submodules/MtProtoKit/Sources/MTContext.m index 7e506f5edc..676e4c64e8 100644 --- a/submodules/MtProtoKit/Sources/MTContext.m +++ b/submodules/MtProtoKit/Sources/MTContext.m @@ -250,7 +250,7 @@ static int32_t fixedTimeDifferenceValue = 0; _tempKeyExpiration = 24 * 60 * 60; #if DEBUG - //_tempKeyExpiration = 30; + _tempKeyExpiration = 30; #endif _datacenterSeedAddressSetById = [[NSMutableDictionary alloc] init]; diff --git a/submodules/MtProtoKit/Sources/MTProto.m b/submodules/MtProtoKit/Sources/MTProto.m index 965ee029d0..2e31704d7e 100644 --- a/submodules/MtProtoKit/Sources/MTProto.m +++ b/submodules/MtProtoKit/Sources/MTProto.m @@ -55,7 +55,7 @@ #import #import - +#import typedef enum { MTProtoStateAwaitingDatacenterScheme = 1, MTProtoStateAwaitingDatacenterAuthorization = 2, @@ -885,7 +885,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64; - (MTDatacenterAuthKey *)getAuthKeyForCurrentScheme:(MTTransportScheme *)scheme createIfNeeded:(bool)createIfNeeded authInfoSelector:(MTDatacenterAuthInfoSelector *)authInfoSelector { if (_useExplicitAuthKey) { - MTDatacenterAuthInfoSelector selector = MTDatacenterAuthInfoSelectorEphemeralMain; + MTDatacenterAuthInfoSelector selector = scheme.media ? MTDatacenterAuthInfoSelectorEphemeralMedia : MTDatacenterAuthInfoSelectorEphemeralMain; if (authInfoSelector != nil) { *authInfoSelector = selector; } @@ -2151,6 +2151,15 @@ static NSString *dumpHexString(NSData *data, int maxLength) { } if (_useExplicitAuthKey != nil) { + if (scheme.media) { + for (NSInteger i = (NSInteger)_messageServices.count - 1; i >= 0; i--) + { + MTBindKeyMessageService* messageService = (MTBindKeyMessageService *)_messageServices[(NSUInteger)i]; + if ([messageService respondsToSelector:@selector(complete)]) { + [messageService complete]; + } + } + } } else if (_cdn) { _validAuthInfo = nil;