| diff -Naur MQTT-C_orig/include/mqtt.h MQTT-C/include/mqtt.h |
| --- MQTT-C_orig/include/mqtt.h 2021-03-29 14:53:52.000000000 -0300 |
| +++ MQTT-C/include/mqtt.h 2023-05-13 09:52:45.704346335 -0300 |
| @@ -1233,6 +1233,9 @@ |
| |
| /** @brief The sending message queue. */ |
| struct mqtt_message_queue mq; |
| + |
| + /** @brief Flag is set on connection event */ |
| + bool event_connect; |
| }; |
| |
| /** |
| diff -Naur MQTT-C_orig/src/mqtt.c MQTT-C/src/mqtt.c |
| --- MQTT-C_orig/src/mqtt.c 2021-03-29 14:53:52.000000000 -0300 |
| +++ MQTT-C/src/mqtt.c 2023-05-13 10:00:36.725165859 -0300 |
| @@ -118,6 +118,10 @@ |
| |
| client->socketfd = sockfd; |
| |
| + /* Indicate we are not connected yet */ |
| + |
| + client->event_connect = false; |
| + |
| mqtt_mq_init(&client->mq, sendbuf, sendbufsz); |
| |
| client->recv_buffer.mem_start = recvbuf; |
| @@ -151,6 +155,10 @@ |
| |
| client->socketfd = (mqtt_pal_socket_handle) -1; |
| |
| + /* Indicate we are not connected yet */ |
| + |
| + client->event_connect = false; |
| + |
| mqtt_mq_init(&client->mq, NULL, 0); |
| |
| client->recv_buffer.mem_start = NULL; |
| @@ -179,6 +187,10 @@ |
| client->error = MQTT_ERROR_CONNECT_NOT_CALLED; |
| client->socketfd = socketfd; |
| |
| + /* Indicate we are not connected yet */ |
| + |
| + client->event_connect = false; |
| + |
| mqtt_mq_init(&client->mq, sendbuf, sendbufsz); |
| |
| client->recv_buffer.mem_start = recvbuf; |
| @@ -592,6 +604,7 @@ |
| case MQTT_CONTROL_PUBCOMP: |
| case MQTT_CONTROL_DISCONNECT: |
| msg->state = MQTT_QUEUED_COMPLETE; |
| + client->event_connect = false; |
| break; |
| case MQTT_CONTROL_PUBLISH: |
| inspected = ( MQTT_PUBLISH_QOS_MASK & (msg->start[0]) ) >> 1; /* qos */ |
| @@ -732,6 +745,8 @@ |
| mqtt_recv_ret = MQTT_ERROR_CONNECTION_REFUSED; |
| } |
| break; |
| + } else { |
| + client->event_connect = true; |
| } |
| break; |
| case MQTT_CONTROL_PUBLISH: |