wolfSSL / wolfMQTT

wolfMQTT is a small, fast, portable MQTT client implementation, including support for TLS 1.3.
https://www.wolfssl.com
GNU General Public License v2.0
521 stars 155 forks source link

Add WOLFMQTT_USE_CB_ON_DISCONNECT for CB on client disconnect #302

Closed embhorn closed 2 years ago

embhorn commented 2 years ago

Adds a new macro WOLFMQTT_USE_CB_ON_DISCONNECT that allows the client's registered disconnect callback to be triggered when MqttClient_Disconnect_ex is called. The CB is normally only used to process an error condition when MqttPacket_HandleNetError is called.

This addresses a feature request from ZD14399

Test with

./configure CFLAGS="-DWOLFMQTT_USE_CB_ON_DISCONNECT"
make
./examples/mqttclient/mqttclient

Observe disconnect CB is executed:

MQTT Message: Done
^CReceived SIGINT
Network Error Callback: Error (Network) (error -8)
MQTT Exiting...
MQTT Unsubscribe: Success (0)
Network Error Callback: Success (error 0)
MQTT Disconnect: Success (0)
MQTT Socket Disconnect: Success (0)