Skip to content

Commit

Permalink
Fix transport nil
Browse files Browse the repository at this point in the history
  • Loading branch information
jcavar committed Sep 4, 2018
1 parent bb8f609 commit 33e06af
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions MQTTClient/MQTTClient/MQTTSessionManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#import "MQTTLog.h"
#import "ReconnectTimer.h"
#import "ForegroundReconnection.h"
#import "MQTTSSLSecurityPolicyTransport.h"

@interface MQTTSessionManager()

Expand Down Expand Up @@ -226,7 +227,7 @@ - (BOOL)requiresTearDown {

- (void)updateState:(MQTTSessionManagerState)newState {
self.state = newState;

if ([self.delegate respondsToSelector:@selector(sessionManager:didChangeState:)]) {
[self.delegate sessionManager:self didChangeState:newState];
}
Expand Down Expand Up @@ -264,15 +265,15 @@ - (void)handleEvent:(MQTTSession *)session event:(MQTTSessionEvent)eventCode err
}
[self updateState:MQTTSessionManagerStateClosed];
break;

case MQTTSessionEventProtocolError:
case MQTTSessionEventConnectionRefused:
case MQTTSessionEventConnectionError:
[self triggerDelayedReconnect];
self.lastErrorCode = error;
[self updateState:MQTTSessionManagerStateError];
break;

default:
break;
}
Expand Down Expand Up @@ -312,7 +313,7 @@ - (void)connected:(MQTTSession *)session sessionPresent:(BOOL)sessionPresent {
}
}
}];

}
self.reconnectFlag = TRUE;
}
Expand All @@ -333,6 +334,21 @@ - (void)messageDelivered:(MQTTSession *)session msgID:(UInt16)msgID {
- (void)connectToInternal:(MQTTConnectHandler)connectHandler {
if (self.session && self.state == MQTTSessionManagerStateStarting) {
[self updateState:MQTTSessionManagerStateConnecting];
MQTTCFSocketTransport *transport;
if (self.securityPolicy) {
transport = [[MQTTSSLSecurityPolicyTransport alloc] init];
((MQTTSSLSecurityPolicyTransport *)transport).securityPolicy = self.securityPolicy;
} else {
transport = [[MQTTCFSocketTransport alloc] init];
}
transport.host = self.host;
transport.port = self.port;
transport.tls = self.tls;
transport.certificates = self.certificates;
transport.voip = self.session.voip;
transport.queue = self.queue;
transport.streamSSLLevel = self.streamSSLLevel;
self.session.transport = transport;
[self.session connectWithConnectHandler:connectHandler];
}
}
Expand Down Expand Up @@ -361,7 +377,7 @@ - (void)triggerDelayedReconnect {
- (void)setSubscriptions:(NSDictionary<NSString *, NSNumber *> *)newSubscriptions {
if (self.state == MQTTSessionManagerStateConnected) {
NSDictionary *currentSubscriptions = [self.effectiveSubscriptions copy];

for (NSString *topicFilter in currentSubscriptions) {
if (!newSubscriptions[topicFilter]) {
__weak MQTTSessionManager *weakSelf = self;
Expand All @@ -377,7 +393,7 @@ - (void)setSubscriptions:(NSDictionary<NSString *, NSNumber *> *)newSubscription
}];
}
}

for (NSString *topicFilter in newSubscriptions) {
if (!currentSubscriptions[topicFilter]) {
NSNumber *number = newSubscriptions[topicFilter];
Expand Down

0 comments on commit 33e06af

Please sign in to comment.