Commit 0efbc529 authored by Al S-M's avatar Al S-M

Fix for 415667

parent 7ae71b96
...@@ -2448,9 +2448,18 @@ int MQTTAsync_connecting(MQTTAsyncs* m) ...@@ -2448,9 +2448,18 @@ int MQTTAsync_connecting(MQTTAsyncs* m)
rc = SOCKET_ERROR; rc = SOCKET_ERROR;
goto exit; goto exit;
} }
else if (rc == 1 && !m->c->cleansession && m->c->session == NULL) else if (rc == 1) {
rc = MQTTCLIENT_SUCCESS;
m->c->connect_state = 3;
if (MQTTPacket_send_connect(m->c) == SOCKET_ERROR)
{
rc = SOCKET_ERROR;
goto exit;
}
if(!m->c->cleansession && m->c->session == NULL))
m->c->session = SSL_get1_session(m->c->net.ssl); m->c->session = SSL_get1_session(m->c->net.ssl);
} }
}
else else
{ {
rc = SOCKET_ERROR; rc = SOCKET_ERROR;
...@@ -2473,6 +2482,8 @@ int MQTTAsync_connecting(MQTTAsyncs* m) ...@@ -2473,6 +2482,8 @@ int MQTTAsync_connecting(MQTTAsyncs* m)
if ((rc = SSLSocket_connect(m->c->net.ssl, m->c->net.socket)) != 1) if ((rc = SSLSocket_connect(m->c->net.ssl, m->c->net.socket)) != 1)
goto exit; goto exit;
if(!m->c->cleansession && m->c->session == NULL))
m->c->session = SSL_get1_session(m->c->net.ssl);
m->c->connect_state = 3; /* SSL connect completed, in which case send the MQTT connect packet */ m->c->connect_state = 3; /* SSL connect completed, in which case send the MQTT connect packet */
if ((rc = MQTTPacket_send_connect(m->c)) == SOCKET_ERROR) if ((rc = MQTTPacket_send_connect(m->c)) == SOCKET_ERROR)
goto exit; goto exit;
......
...@@ -795,9 +795,18 @@ int MQTTClient_connectURI(MQTTClient handle, MQTTClient_connectOptions* options, ...@@ -795,9 +795,18 @@ int MQTTClient_connectURI(MQTTClient handle, MQTTClient_connectOptions* options,
rc = SOCKET_ERROR; rc = SOCKET_ERROR;
goto exit; goto exit;
} }
else if (rc == 1 && !m->c->cleansession && m->c->session == NULL) else if (rc == 1) {
rc = MQTTCLIENT_SUCCESS;
m->c->connect_state = 3;
if (MQTTPacket_send_connect(m->c) == SOCKET_ERROR)
{
rc = SOCKET_ERROR;
goto exit;
}
if(!m->c->cleansession && m->c->session == NULL))
m->c->session = SSL_get1_session(m->c->net.ssl); m->c->session = SSL_get1_session(m->c->net.ssl);
} }
}
else else
{ {
rc = SOCKET_ERROR; rc = SOCKET_ERROR;
...@@ -829,6 +838,8 @@ int MQTTClient_connectURI(MQTTClient handle, MQTTClient_connectOptions* options, ...@@ -829,6 +838,8 @@ int MQTTClient_connectURI(MQTTClient handle, MQTTClient_connectOptions* options,
rc = SOCKET_ERROR; rc = SOCKET_ERROR;
goto exit; goto exit;
} }
if(!m->c->cleansession && m->c->session == NULL))
m->c->session = SSL_get1_session(m->c->net.ssl);
m->c->connect_state = 3; /* TCP connect completed, in which case send the MQTT connect packet */ m->c->connect_state = 3; /* TCP connect completed, in which case send the MQTT connect packet */
if (MQTTPacket_send_connect(m->c) == SOCKET_ERROR) if (MQTTPacket_send_connect(m->c) == SOCKET_ERROR)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment