mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-25 09:32:46 +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)contextDatacenterAddressSetUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId addressSet:(MTDatacenterAddressSet *)addressSet;
|
||||||
- (void)contextDatacenterAuthInfoUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authInfo:(MTDatacenterAuthInfo *)authInfo;
|
- (void)contextDatacenterAuthInfoUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authInfo:(MTDatacenterAuthInfo *)authInfo;
|
||||||
- (void)contextDatacenterAuthTokenUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authToken:(id)authToken;
|
- (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)contextIsPasswordRequiredUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
||||||
- (void)contextDatacenterPublicKeysUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId publicKeys:(NSArray<NSDictionary *> *)publicKeys;
|
- (void)contextDatacenterPublicKeysUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId publicKeys:(NSArray<NSDictionary *> *)publicKeys;
|
||||||
- (MTSignal *)fetchContextDatacenterPublicKeys:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
- (MTSignal *)fetchContextDatacenterPublicKeys:(MTContext *)context datacenterId:(NSInteger)datacenterId;
|
||||||
|
|||||||
@ -491,10 +491,11 @@ static int32_t fixedTimeDifferenceValue = 0;
|
|||||||
[listener contextDatacenterAddressSetUpdated:self datacenterId:datacenterId addressSet:addressSet];
|
[listener contextDatacenterAddressSetUpdated:self datacenterId:datacenterId addressSet:addressSet];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (previousAddressSetWasEmpty || updateSchemes || true) {
|
if (true) {
|
||||||
|
bool shouldReset = previousAddressSetWasEmpty || updateSchemes;
|
||||||
for (id<MTContextChangeListener> listener in currentListeners) {
|
for (id<MTContextChangeListener> listener in currentListeners) {
|
||||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:)]) {
|
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:shouldReset:)]) {
|
||||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId];
|
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId shouldReset:shouldReset];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -664,8 +665,8 @@ static int32_t fixedTimeDifferenceValue = 0;
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (id<MTContextChangeListener> listener in currentListeners) {
|
for (id<MTContextChangeListener> listener in currentListeners) {
|
||||||
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:)])
|
if ([listener respondsToSelector:@selector(contextDatacenterTransportSchemesUpdated:datacenterId:shouldReset:)])
|
||||||
[listener contextDatacenterTransportSchemesUpdated:self datacenterId:datacenterId];
|
[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:^ {
|
[[MTProto managerQueue] dispatchOnQueue:^ {
|
||||||
if (context == _context && datacenterId == _datacenterId && ![self isStopped]) {
|
if (context == _context && datacenterId == _datacenterId && ![self isStopped]) {
|
||||||
|
bool resolvedShouldReset = shouldReset;
|
||||||
|
|
||||||
if (_mtState & MTProtoStateAwaitingDatacenterScheme) {
|
if (_mtState & MTProtoStateAwaitingDatacenterScheme) {
|
||||||
[self setMtState:_mtState & (~MTProtoStateAwaitingDatacenterScheme)];
|
[self setMtState:_mtState & (~MTProtoStateAwaitingDatacenterScheme)];
|
||||||
|
resolvedShouldReset = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
[self resetTransport];
|
if (resolvedShouldReset) {
|
||||||
[self requestTransportTransaction];
|
[self resetTransport];
|
||||||
|
[self requestTransportTransaction];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -514,7 +514,7 @@ func initializedNetwork(arguments: NetworkInitializationArguments, supplementary
|
|||||||
context.setDiscoverBackupAddressListSignal(MTBackupAddressSignals.fetchBackupIps(testingEnvironment, currentContext: context, additionalSource: wrappedAdditionalSource, phoneNumber: phoneNumber))
|
context.setDiscoverBackupAddressListSignal(MTBackupAddressSignals.fetchBackupIps(testingEnvironment, currentContext: context, additionalSource: wrappedAdditionalSource, phoneNumber: phoneNumber))
|
||||||
|
|
||||||
#if DEBUG
|
#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
|
#endif
|
||||||
|
|
||||||
let mtProto = MTProto(context: context, datacenterId: datacenterId, usageCalculationInfo: usageCalculationInfo(basePath: basePath, category: nil), requiredAuthToken: nil, authTokenMasterDatacenterId: 0)!
|
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