Some cloud server (e.g. exosite) takes empty username with password.
When password is set without username, the current esp-mqtt implementation will
ignore the username and only set password. This violates MQTT-3.1.2-22 [1].
To address this issue, send zero length username if password is set without username.
[1] MQTT-3.1.2-22: If the User Name Flag is set to 0 then the Password Flag MUST be set to 0.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Added a separate config value to allow disable the keepalive mechanism (and keep the existing API the same)
Internally though, the keepalive value (in connect_info) is in line with 3.1.2.10 Keep Alive from mqtt spec:
* keepalive=0: Keep alive mechanism disabled (server not to disconnect the client on its inactivity)
* period in seconds to send a Control packet if inactive
Closes https://github.com/espressif/esp-mqtt/issues/179
Previously, uint32_t and size_t were used interchangeably. These types are
interchangeable on Xtensa gcc (uint32_t == size_t == unsigned int), but not on most
other 32-bit gcc architectures (where uint32_t == unsigned long, size_t ==
unsigned int).
Add config option for selecting protocol version at runtime.
This also fixed MQTT protocol version 3.1 which wasnt working with the original implementation
Closes https://github.com/espressif/esp-idf/issues/4448
Closes IDFGH-2311
Closes IDF-1320
This commit adds an event information "connect_return_code" that is written
when the client state is MQTT_STATE_INIT, and the connection fails.
This event info can then be written by the user app to find out the reason
of the fail connection.
Merges https://github.com/espressif/esp-mqtt/pull/100
The time for retransmitting a message was set before transfer was done. This ment that if the transfer speed is slow or the message is big then it would be possible to trigger a retransmit too early.
Closes https://github.com/espressif/esp-mqtt/issues/131
- Some PUBLISHED events would not be posted due to outbox messages being deleted before receiving PUBCOMP.
- Current pending_message is no longer used to check for acknowledgements, as it doesn't work with multiple or out of order messages.
Closes https://github.com/espressif/esp-mqtt/issues/132
* add missing config for setting default port for SSL in Kconfig
* free the TCP only after closing the connection , not before
* set the config in the client before we access the schema in the client
* fix typo
* dispatch also Publish event