mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Don't reconnect on scheme discovery unless necessary
This commit is contained in:
parent
0c22b4b37c
commit
fdda2fd2ce
@ -22,7 +22,7 @@
|
||||
- (void)contextDatacenterAddressSetUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId addressSet:(MTDatacenterAddressSet *)addressSet;
|
||||
- (void)contextDatacenterAuthInfoUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authInfo:(MTDatacenterAuthInfo *)authInfo;
|
||||
- (void)contextDatacenterAuthTokenUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authToken:(id)authToken;
|
||||
- (void)contextDatacenterTransportSchemesUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
||||
- (void)contextDatacenterTransportSchemesUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId shouldReset:(bool)shouldReset;
|
||||
- (void)contextIsPasswordRequiredUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
||||
- (void)contextDatacenterPublicKeysUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId publicKeys:(NSArray<NSDictionary *> *)publicKeys;
|
||||
- (MTSignal *)fetchContextDatacenterPublicKeys:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
||||
|
@ -491,10 +491,11 @@ static int32_t fixedTimeDifferenceValue = 0;
|
||||
[listener contextDatacenterAddressSetUpdated:self datacenterId:datacenterId addressSet:addressSet];
|
||||
}
|
||||
|
||||
if (previousAddressSetWasEmpty || updateSchemes || true) {
|
||||
if (true) {
|
||||
bool shouldReset = previousAddressSetWasEmpty || updateSchemes;
|
||||
for (id<MTContextChangeListener> listener in currentListeners) {
|
||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:)]) {
|
||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId];
|
||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:shouldReset:)]) {
|
||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId shouldReset:shouldReset];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -664,8 +665,8 @@ static int32_t fixedTimeDifferenceValue = 0;
|
||||
}
|
||||
|
||||
for (id<MTContextChangeListener> listener in currentListeners) {
|
||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:)])
|
||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId];
|
||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:shouldReset:)])
|
||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId shouldReset:true];
|
||||
}
|
||||
}
|
||||
}];
|
||||
|
@ -2715,15 +2715,20 @@ static NSString *dumpHexString(NSData *data, int maxLength) {
|
||||
}
|
||||
}
|
||||
|
||||
- (void)contextDatacenterTransportSchemesUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId {
|
||||
- (void)contextDatacenterTransportSchemesUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId shouldReset:(bool)shouldReset {
|
||||
[[MTProto managerQueue] dispatchOnQueue:^ {
|
||||
if (context == _context && datacenterId == _datacenterId && ![self isStopped]) {
|
||||
bool resolvedShouldReset = shouldReset;
|
||||
|
||||
if (_mtState & MTProtoStateAwaitingDatacenterScheme) {
|
||||
[self setMtState:_mtState & (~MTProtoStateAwaitingDatacenterScheme)];
|
||||
resolvedShouldReset = true;
|
||||
}
|
||||
|
||||
[self resetTransport];
|
||||
[self requestTransportTransaction];
|
||||
if (resolvedShouldReset) {
|
||||
[self resetTransport];
|
||||
[self requestTransportTransaction];
|
||||
}
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
@ -514,7 +514,7 @@ func initializedNetwork(arguments: NetworkInitializationArguments, supplementary
|
||||
context.setDiscoverBackupAddressListSignal(MTBackupAddressSignals.fetchBackupIps(testingEnvironment, currentContext: context, additionalSource: wrappedAdditionalSource, phoneNumber: phoneNumber))
|
||||
|
||||
#if DEBUG
|
||||
let _ = MTBackupAddressSignals.fetchBackupIps(testingEnvironment, currentContext: context, additionalSource: wrappedAdditionalSource, phoneNumber: phoneNumber).start(next: nil)
|
||||
//let _ = MTBackupAddressSignals.fetchBackupIps(testingEnvironment, currentContext: context, additionalSource: wrappedAdditionalSource, phoneNumber: phoneNumber).start(next: nil)
|
||||
#endif
|
||||
|
||||
let mtProto = MTProto(context: context, datacenterId: datacenterId, usageCalculationInfo: usageCalculationInfo(basePath: basePath, category: nil), requiredAuthToken: nil, authTokenMasterDatacenterId: 0)!
|
||||
|
Loading…
x
Reference in New Issue
Block a user