Fix: Correct state transition check in MqttClient_Auth #439
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #442
Corrects a critical logic error in
MqttClient_Authwhere the function failed to check for the correct internal message state before attempting to send the AUTH packet payload over the network.Problem
In
MqttClient_Auth, the function transitions the write state fromMQTT_MSG_BEGINtoMQTT_MSG_HEADERafter encoding the fixed andvariable headers.
The subsequent block responsible for transmitting the packet incorrectly checked
if the state was still
MQTT_MSG_BEGIN.If the function was called again after the initial encoding, this logic error
would cause the AUTH packet to stall indefinitely because the state check
failed, preventing the
wolfMqtt_Writecall.✅ Solution
The conditional check has been updated to look for the correct state,
MQTT_MSG_HEADER, which is the state required to start the networktransmission phase.
Code Change Detail:
This ensures the AUTH packet is correctly picked up and sent upon subsequent
calls, resolving the potential stall in the authentication flow.