Commit Graph

234 Commits

Author SHA1 Message Date
David Cermak
e3b013e2db Extended error structure to be used in mqtt library and include mqtt
specific errors.
Corrected typos in comments and log messages
2019-10-09 11:22:02 +02:00
João Cabral
67042a1315 ADD: Get the response code from a failing connection.
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
2019-10-09 09:23:53 +02:00
Marius Vikhammer
52cdfa9087 Fix early retransmit
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
2019-10-03 14:03:32 +02:00
Marius Vikhammer
3e35fc8323 MQTT: fix MQTT_PUBLISHED_EVENT not always being posted
- 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
2019-10-03 13:28:51 +02:00
Matias
176be08f75 Fix not dispatching MQTT_EVENT_ERROR
If a publish failure ocurred, MQTT_EVENT_ERROR was not delivered to handler set with esp_mqtt_client_register_event
2019-09-14 21:16:31 -03:00
David Cermak
0234f6e538 client: added config option to enable global ca strore
closes https://github.com/espressif/esp-mqtt/issues/125
2019-08-23 14:33:35 +02:00
Henning Fleddermann
9a56cc7e14 add der-format support for tls-certificates/keys 2019-08-22 15:11:49 +02:00
liu zhifu
fb3d2107cd MQTT examples use new event 2019-08-16 16:15:54 +08:00
Thomas Bernard
cbae6343e9 fix deadlock between xEventGroupWaitBits and API lock semaphore
Merges https://github.com/espressif/esp-mqtt/pull/124
Closes https://github.com/espressif/esp-mqtt/issues/122
2019-08-08 11:54:42 +02:00
David Cermak
117eef2dad psk ssl could be used to authenticate with mqtt broker as an alternative to cerificate verification
Closes https://github.com/espressif/esp-mqtt/issues/95
2019-07-22 14:26:47 +02:00
David Cermak
0cc4077bd3 modified error type to be a generic handle to capture different types of errors 2019-07-04 09:12:40 +02:00
David Cermak
65bf2255d7 adding error event with error code 2019-07-03 08:49:54 +02:00
David Cermak
d9faeb47a3 fix resending subscribe messages
subscribe and unsubscribe messages were pushed to queue, but TRANSMIT flag wasn't set, so they were automatically retransmitted
2019-06-27 16:39:42 +02:00
David Cermak
82fa03a508 fixed possible race conditions in public API of mqtt_client
- Modified most of the public API to lock even if checking for connection state
- Updated `esp_mqtt_set_config` locks to be used also from callbacks (in mqtt-task context)
- Moved initialization of event_loop out of esp_mqtt_set_config
2019-06-27 16:36:12 +02:00
Gregory Eslinger
7223302deb MQTT Client: Check for connection before sending disconnect message
Closes https://github.com/espressif/esp-idf/issues/3619
Closes https://github.com/espressif/esp-mqtt/issues/120
Merges https://github.com/espressif/esp-mqtt/pull/118

Signed-off-by: David Cermak <cermak@espressif.com>
2019-06-27 16:33:58 +02:00
David Cermak
edd67e1c8c used event loop only if defined in supported features (enabled by macros) for backward compatibily with older IDFs 2019-06-06 17:00:03 +02:00
David Cermak
48cd04baf1 defined macros for supported features in esp-idf based on idf version 2019-05-29 14:05:49 +02:00
Tuan
a6f8716fff Add mqtt sub protocol for websocket 2019-05-24 09:29:31 +02:00
David Cermak
eeebd0215c support for esp event loop library while keeping backward compatible mode if callback configured 2019-05-16 16:29:33 +02:00
David Cermak
18b6f2c582 Fixed formatting for all files to comply with idf style formats 2019-05-15 13:40:14 +02:00
David Cermak
60cdb79a67 mqtt_msg: avoid uncasting const to mqtt topic and data pointers 2019-05-15 13:40:14 +02:00
David Cermak
d159bf4575 support for publishing message with empty data 2019-05-15 13:40:08 +02:00
David Cermak
891646681e client_init: fix crashing client upon wrong parameters, init or deinit
Closes https://github.com/espressif/esp-idf/issues/3191
2019-05-15 13:37:51 +02:00
David Cermak
7d22ab5fe6 pending_msg_count update on delete expired from outbox
Closes #111
2019-05-06 11:23:35 +02:00
David Cermak
fd564b1f17 client receive: refactor receive to read only one message to fragment only payload for longer messages
Closes #113
2019-05-06 11:23:28 +02:00
Gregory Eslinger
0450bd0093 MQTT Client: Added support for receiving empty payload 2019-04-26 17:07:04 +02:00
Gregory Eslinger
caf5007b99 MQTT Client: Added disconnect message on client stop
Closes https://github.com/espressif/esp-mqtt/issues/97 and closes https://github.com/espressif/esp-idf/issues/3215
2019-03-27 17:41:03 +01:00
leewo0
57d2774462 fix bug: client->state not set
If auto_reconnect is disabled, client->state won't be setted in MQTT_STATE_WAIT_TIMEOUT statement, which results in an error if esp_mqtt_client_start() is called.
2019-02-20 16:49:46 +08:00
David Cermak
3300338c85 tabs to spaces corrections 2019-02-13 15:21:32 +01:00
David Cermak
51089629f7 corrected outbox for oversized messge and qos1, added errno to error messages 2019-02-13 15:21:32 +01:00
David Cermak
752953dc3b added mqtt api locks, so methods can be executed from user context
closes #67, closes #90, closes https://github.com/espressif/esp-idf/issues/2975
2019-02-13 15:21:32 +01:00
David Cermak
6a0d1e7bff support for qos1 and qos2 message retrasmission on reconnect 2019-02-13 15:21:32 +01:00
David Cermak
815623dfe5 improvements on runtime configuration of uri
closes https://github.com/espressif/esp-idf/issues/2870
2019-02-13 15:21:32 +01:00
David Cermak
d4b6655618 minor fixes for issues present with fragmented/packed data 2019-02-13 14:59:38 +01:00
Mikael Kanstrup
df455d2a5f Add client force reconnect function
esp-mqtt library is unaware of underlying network connectivity states
and current auto reconnect mechanism is built around timed retry
attempts every MQTT_RECONNECT_TIMEOUT_MS.

As application code usually keeps track of network connectity state
export a new function that application can use to request a forced
reconnect attempt as soon as connected to the network.
2019-02-04 08:44:55 +01:00
Mikael Kanstrup
17fd713bce Avoid further wait period after reconnect timeout occurs
When reconnect timer expires an additional waiting period of half the
timeout period is seen. Skip this extra waiting period when timeout
is detected and perform the connect attempt right away. This change
makes configured reconnect timeout value MQTT_RECONNECT_TIMEOUT_MS
accurate.
2019-02-04 08:44:55 +01:00
David Cermak
f08f3b6787 update log levels, logging complete error code, removed unnecessary struct 2019-01-03 09:14:34 +01:00
David Cermak
06fe5cca8e mqtt data events fixed to keep consistent msg_id when fragmented message received
closes #70
2019-01-03 09:14:34 +01:00
David Cermak
e0bbbebc08 mqtt support for sending fragmented messages and full mqtt message length support 2019-01-03 09:14:34 +01:00
David Cermak
cf5b8eda89 added a fix for incomplete header message received (topic or data could not be resolved from msg) 2019-01-03 09:14:34 +01:00
Laurent Louf
db64b79120 Fix for case where multiple MQTT messages are fitted into a single TCP packet : iterate over the buffer received.
Merges https://github.com/espressif/esp-mqtt/pull/82
Closes #64
Closes #80
2019-01-03 09:14:34 +01:00
Tuan
2b49d37f8d Add BEFORE_CONNECt event and refresh the connection option 2018-11-09 23:26:35 +08:00
David Cermak
8b45c25fdc corrections per renaming transports to esp_ prefixed 2018-10-16 08:29:47 +02:00
Riccardo Binetti
d2bcdd84a1 Add mutual SSL auth config to mqtt_client
picked from master
2018-10-16 08:29:47 +02:00
david-cermak
52cb6980b0 Merge pull request #77 from rbino/session-present
Expose the session_present flag in the CONNACK packet
2018-10-16 08:28:55 +02:00
Riccardo Binetti
4db9918220 mqtt_client: add session_present field to mqtt_event
Populate it using the CONNACK packet
2018-10-15 11:31:46 +02:00
Riccardo Binetti
a9e796025a Fix buffer length during connection read
Use the in_buffer length instead of the out msg length
2018-10-15 11:26:51 +02:00
Riccardo Binetti
c2f3b9f4b4 Fix bug in esp_mqtt_client_publish message enqueueing
We have to enqueue first and then assign to outbound/pending variables,
otherwise the previous pending message is lost and the publish message
is present twice
2018-10-10 14:48:32 +02:00
David Cermak
e26764502a mqtt_client_stop stops only if started, fixed tabs->spaces, updated README, removed unused config
closes #62
2018-10-05 16:01:29 +02:00
David Cermak
85ee406d03 tcp_transport: renamed possibly generic function names to be esp_ prefixed and not to colide with user namespace 2018-10-02 14:18:03 +02:00