fix: set TCP transport every time when setting the config (IDFGH-13175) #281
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.
Hi @gabsuren @euripedesrocha
We just realised that the TCP transport is not set every time. When the incoming
config::network::transport
handle is null, it will not be set, and the MQTT client will keep using the previous old (invalid) TCP transport handle.This is a bit problematic for us. One of our products have a few network interfaces. For example, when using WiFi, the MQTT (over WebSocket) client requires our own TCP transport handle with HTTP proxy, but 4G modem doesn't. When a switchover is needed, we would call
esp_mqtt_client_disconnect
to disconnect, and then callesp_mqtt_set_config()
to reconfigure the client to let it start using or stop using a the TCP transport with proxy.But now in current implementation, since you have a
if (config->network.transport)
null check, this will prevent us from clearing the TCP transport setting. Therefore I think we need to remove this unnecessary null check.Regards,
Jackson