I am working with the iolibrary and I use the MQTT Internet module to develop a MQTT client application on my MCU. By looking at the code that implements the MQTT client in MQTTClient.c, it seems that there are no mechanisms to ensure the reliability of QoS 1 and 2 messages. For example, in a QoS 2 message exchange, I cannot find actual code handling situations where the client needs to re-send its publish message if it does not receive a PUBREC packet after a while ?
Do I worry for nothing or do the library is just a minimal and not complete implementation of the requirements implied with QoS 1 and 2 messages ?
I saw the cycle function, but it seems like this function does not handle all the potential cases that can happen. For example, for QoS 2 messages, I cannot see code in the cycle function that handles re-transmission of publish message if the client does not receive a PUBREC packet after a certain amount of time (timeout).