mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2026-01-21 11:39:43 +00:00
Merge branch 'master' of https://github.com/peter-iakovlev/MtProtoKit
This commit is contained in:
@@ -150,8 +150,8 @@
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportNetworkAvailabilityChanged:isNetworkAvailable:)])
|
||||
[delegate transportNetworkAvailabilityChanged:self isNetworkAvailable:_isNetworkAvailable];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected isUsingProxy:false];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionContextUpdateStateChanged:isUpdatingConnectionContext:)])
|
||||
[delegate transportConnectionContextUpdateStateChanged:self isUpdatingConnectionContext:_currentActualizationPingId != 0];
|
||||
}];
|
||||
@@ -199,8 +199,8 @@
|
||||
_isConnected = false;
|
||||
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected isUsingProxy:false];
|
||||
}
|
||||
}];
|
||||
}
|
||||
@@ -281,8 +281,8 @@
|
||||
_isConnected = true;
|
||||
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:_isConnected isUsingProxy:false];
|
||||
}
|
||||
|
||||
[self stopConnectionWatchdogTimer];
|
||||
|
||||
@@ -16,12 +16,19 @@
|
||||
|
||||
@class MTProto;
|
||||
|
||||
@interface MTProtoConnectionState : NSObject
|
||||
|
||||
@property (nonatomic, readonly) bool isConnected;
|
||||
@property (nonatomic, readonly) bool isUsingProxy;
|
||||
|
||||
@end
|
||||
|
||||
@protocol MTProtoDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
- (void)mtProtoNetworkAvailabilityChanged:(MTProto *)mtProto isNetworkAvailable:(bool)isNetworkAvailable;
|
||||
- (void)mtProtoConnectionStateChanged:(MTProto *)mtProto isConnected:(bool)isConnected;
|
||||
- (void)mtProtoConnectionStateChanged:(MTProto *)mtProto state:(MTProtoConnectionState *)state;
|
||||
- (void)mtProtoConnectionContextUpdateStateChanged:(MTProto *)mtProto isUpdatingConnectionContext:(bool)isUpdatingConnectionContext;
|
||||
- (void)mtProtoServiceTasksStateChanged:(MTProto *)mtProto isPerformingServiceTasks:(bool)isPerformingServiceTasks;
|
||||
|
||||
|
||||
@@ -73,6 +73,19 @@ static const NSUInteger MTMaxContainerSize = 3 * 1024;
|
||||
static const NSUInteger MTMaxUnacknowledgedMessageSize = 1 * 1024 * 1024;
|
||||
static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
|
||||
@implementation MTProtoConnectionState
|
||||
|
||||
- (instancetype)initWithIsConnected:(bool)isConnected isUsingProxy:(bool)isUsingProxy {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
_isConnected = isConnected;
|
||||
_isUsingProxy = isUsingProxy;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface MTProto () <MTContextChangeListener, MTTransportDelegate, MTTimeSyncMessageServiceDelegate, MTResendMessageServiceDelegate>
|
||||
{
|
||||
NSMutableArray *_messageServices;
|
||||
@@ -219,7 +232,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
if ([delegate respondsToSelector:@selector(mtProtoNetworkAvailabilityChanged:isNetworkAvailable:)])
|
||||
[delegate mtProtoNetworkAvailabilityChanged:self isNetworkAvailable:false];
|
||||
if ([delegate respondsToSelector:@selector(mtProtoConnectionStateChanged:isConnected:)])
|
||||
[delegate mtProtoConnectionStateChanged:self isConnected:false];
|
||||
[delegate mtProtoConnectionStateChanged:self state:nil];
|
||||
if ([delegate respondsToSelector:@selector(mtProtoConnectionContextUpdateStateChanged:isUpdatingConnectionContext:)])
|
||||
[delegate mtProtoConnectionContextUpdateStateChanged:self isUpdatingConnectionContext:false];
|
||||
}
|
||||
@@ -662,7 +675,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)transportConnectionStateChanged:(MTTransport *)transport isConnected:(bool)isConnected
|
||||
- (void)transportConnectionStateChanged:(MTTransport *)transport isConnected:(bool)isConnected isUsingProxy:(bool)isUsingProxy
|
||||
{
|
||||
[[MTProto managerQueue] dispatchOnQueue:^
|
||||
{
|
||||
@@ -680,8 +693,8 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64;
|
||||
}
|
||||
|
||||
id<MTProtoDelegate> delegate = _delegate;
|
||||
if ([delegate respondsToSelector:@selector(mtProtoConnectionStateChanged:isConnected:)])
|
||||
[delegate mtProtoConnectionStateChanged:self isConnected:isConnected];
|
||||
if ([delegate respondsToSelector:@selector(mtProtoConnectionStateChanged:state:)])
|
||||
[delegate mtProtoConnectionStateChanged:self state:[[MTProtoConnectionState alloc] initWithIsConnected:isConnected isUsingProxy:isUsingProxy]];
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
@@ -28,12 +28,16 @@
|
||||
#import "MTBuffer.h"
|
||||
#import "MTPongMessage.h"
|
||||
|
||||
#import "MTContext.h"
|
||||
#import "MTApiEnvironment.h"
|
||||
|
||||
static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
|
||||
@interface MTTcpTransportContext : NSObject
|
||||
|
||||
@property (nonatomic, strong) MTDatacenterAddress *address;
|
||||
@property (nonatomic, strong) MTTcpConnection *connection;
|
||||
@property (nonatomic) bool isUsingProxy;
|
||||
|
||||
@property (nonatomic) bool connectionConnected;
|
||||
@property (nonatomic) bool connectionIsValid;
|
||||
@@ -112,6 +116,8 @@ static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
transportContext.connectionBehaviour.delegate = self;
|
||||
|
||||
transportContext.isNetworkAvailable = true;
|
||||
|
||||
transportContext.isUsingProxy = context.apiEnvironment.socksProxySettings != nil;
|
||||
}];
|
||||
}
|
||||
return self;
|
||||
@@ -157,8 +163,8 @@ static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportNetworkAvailabilityChanged:isNetworkAvailable:)])
|
||||
[delegate transportNetworkAvailabilityChanged:self isNetworkAvailable:transportContext.isNetworkAvailable];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:transportContext.connectionConnected];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:transportContext.connectionConnected isUsingProxy:transportContext.isUsingProxy];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionContextUpdateStateChanged:isUpdatingConnectionContext:)])
|
||||
[delegate transportConnectionContextUpdateStateChanged:self isUpdatingConnectionContext:transportContext.currentActualizationPingMessageId != 0];
|
||||
}];
|
||||
@@ -230,8 +236,8 @@ static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
transportContext.connectionIsValid = false;
|
||||
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:false];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:false isUsingProxy:transportContext.isUsingProxy];
|
||||
|
||||
transportContext.connectionBehaviour.needsReconnection = false;
|
||||
|
||||
@@ -401,8 +407,8 @@ static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
[transportContext.connectionBehaviour connectionOpened];
|
||||
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:true];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:true isUsingProxy:transportContext.isUsingProxy];
|
||||
|
||||
transportContext.didSendActualizationPingAfterConnection = false;
|
||||
transportContext.currentActualizationPingMessageId = 0;
|
||||
@@ -432,8 +438,8 @@ static const NSTimeInterval MTTcpTransportSleepWatchdogTimeout = 60.0;
|
||||
[self restartSleepWatchdogTimer];
|
||||
|
||||
id<MTTransportDelegate> delegate = self.delegate;
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:false];
|
||||
if ([delegate respondsToSelector:@selector(transportConnectionStateChanged:isConnected:isUsingProxy:)])
|
||||
[delegate transportConnectionStateChanged:self isConnected:false isUsingProxy:transportContext.isUsingProxy];
|
||||
|
||||
if ([delegate respondsToSelector:@selector(transportTransactionsMayHaveFailed:transactionIds:)])
|
||||
[delegate transportTransactionsMayHaveFailed:self transactionIds:@[connection.internalId]];
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
@optional
|
||||
|
||||
- (void)transportNetworkAvailabilityChanged:(MTTransport *)transport isNetworkAvailable:(bool)isNetworkAvailable;
|
||||
- (void)transportConnectionStateChanged:(MTTransport *)transport isConnected:(bool)isConnected;
|
||||
- (void)transportConnectionStateChanged:(MTTransport *)transport isConnected:(bool)isConnected isUsingProxy:(bool)isUsingProxy;
|
||||
- (void)transportConnectionContextUpdateStateChanged:(MTTransport *)transport isUpdatingConnectionContext:(bool)isUpdatingConnectionContext;
|
||||
- (void)transportConnectionProblemsStatusChanged:(MTTransport *)transport hasConnectionProblems:(bool)hasConnectionProblems isProbablyHttp:(bool)isProbablyHttp;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user