Commit Graph

227 Commits

Author SHA1 Message Date
AndriiFilippov
fb3184cc14 Make the mqtt submodule logging tags lower case 2022-04-04 10:33:06 +02:00
Darian Leung
6ef98d6510 Client: Remove usage of legacy FreeRTOS types 2022-01-13 00:34:53 +08:00
yuanjm
372b323535 mqtt_client: Fix mqtt send long data error
Closes https://github.com/espressif/esp-mqtt/issues/214
2021-12-21 15:31:56 +08:00
yuanjm
df8dc92870 Client: Fix use esp_mqtt_client_enqueue API to send data, data dup flag will be set 1 2021-11-26 15:52:04 +08:00
Euripedes Rocha
09287a1156 Removes redundant field on mqtt state
Client connection_info was unnecessarilly repeated. Removed from
mqtt_state and kept on mqtt_client.
2021-11-01 18:17:29 +01:00
Euripedes Rocha
1fd50dd2cb Adds a config flag to allow an empty client id
This commit covers a use case where the user can select to send an
empty user id.
2021-11-01 18:17:29 +01:00
David Cermak
3f05b1aedc Client: Fix reconnect/disconnect if auto_reconnect=off
Closes https://github.com/espressif/esp-mqtt/issues/206
2021-10-06 17:46:32 +02:00
David Cermak
86e40f8615 Send disconnect message if client asked to disconnect
https://github.com/espressif/esp-mqtt/issues/208
2021-10-06 17:46:32 +02:00
Bert Melis
de47f1c341 add payload to MQTT_EVENT_SUBSCRIBE
+ documentation
+ cleanup logging

Closes https://github.com/espressif/esp-mqtt/issues/200
Merges https://github.com/espressif/esp-mqtt/pull/203
2021-10-04 10:38:02 +02:00
Bert Melis
e1d5a9402f add qos and dup to MQTT_EVENT_DATA 2021-09-23 18:09:39 +02:00
David Čermák
89894bd0c6 Merge branch 'feature/configurable_retransmit' into 'master'
Add configurable retransmit (GitHub PR)

See merge request espressif/esp-mqtt!110
2021-09-15 18:10:50 +00:00
David Čermák
1d10608409 Merge branch 'feature/set_config_error_reporting' into 'master'
Reports config conflicts error to the user

See merge request espressif/esp-mqtt!102
2021-09-15 16:46:35 +00:00
Umer Ilyas
1b009c840b Config: Add configurable retransmit timeout
sometime user want to configure retransmit timeout due to network or other requirement

Merges https://github.com/espressif/esp-mqtt/pull/199
2021-09-15 18:43:23 +02:00
Euripedes Rocha
88f4b8ed50 Reports config conflicts error to the user
- Configuration conflicts were verified, logged but not reported to the
  user.
2021-09-15 15:09:23 +08:00
David Cermak
5b3c81ee48 Config: Fix build issue if WS/WSS transport disabled
Closes https://github.com/espressif/esp-idf/issues/7535
2021-09-10 09:15:41 +02:00
David Cermak
1b71980575 Config: Add error message if certbunde is not enabled
Merges https://github.com/espressif/esp-mqtt/pull/198
2021-09-07 15:42:11 +02:00
fractal-def
4a89bff610 Check CONFIG_MBEDTLS_CERTIFICATE_BUNDLE is set
Fixes a compilation error where `esp_transport_ssl_crt_bundle_attach` is undefined in this scenario.
2021-08-10 15:02:35 -06:00
David Čermák
026ea95338 Merge branch 'remove_outbox_cleanup_function' into 'master'
Removes unnecessary outbox_cleanup

See merge request espressif/esp-mqtt!108
2021-07-09 16:13:48 +00:00
Euripedes Rocha
ebef896b00 Removes unnecessary outbox_cleanup
The states that were cleaned by this function, CONFIRMED, are no longer reachable.
Itens were marked with this status previously in PUBCOMP and PUBREL
receive handlers.
2021-07-01 14:40:45 +01:00
Euripedes Rocha
7471177fe7 Fix: Return an error when fail to enqueue
The functions that enqueue messages didn't had a return for the
handler, with this the error was only logged instead of returned which
may cause the user to have an ID for a message that was not published.
2021-07-01 09:29:58 +01:00
David Čermák
831d25cb56 Merge branch 'update/qemu_test_IDFv4.3' into 'master'
CI: Update QEMU image and test against IDF v4.4-dev (plus minor fixes)

See merge request espressif/esp-mqtt!104
2021-06-24 16:34:31 +00:00
David Cermak
1a94efe8b9 outbox: Cleanup all items when connection closes 2021-06-24 06:31:29 +02:00
David Čermák
c4b7324bd6 Merge branch 'feature/remove_unnecessary_queue_requests' into 'master'
Removes unnecessary calls to outbox_set_pending

See merge request espressif/esp-mqtt!105
2021-06-23 06:46:06 +00:00
Euripedes Rocha
67553aba45 MQTT: Makes abort connection function void.
The function only returned ESP_OK and the call was always ignored.
2021-06-18 17:18:51 +01:00
Euripedes Rocha
36a3990404 Removes unnecessary calls to outbox_set_pending
The call of this function is unnecessary for PUBACK and PUBCOMP,
also the item is deleted on the call of is_valid_mqtt_msg and the
function allways fail.
2021-06-18 14:11:21 +01:00
David Čermák
78fcf23947 Merge branch 'bugfix/partial_transport_writes' into 'master'
Address partial writes and retain flags

See merge request espressif/esp-mqtt!99
2021-05-26 15:56:08 +00:00
David Čermák
048f12f55f Merge branch 'feature/add_crt_bundle' into 'master'
Added support for certificate bundle

See merge request espressif/esp-mqtt!98
2021-05-26 15:54:21 +00:00
David Čermák
ff8226a464 Merge branch 'bugfix/missing_path_field_in_config' into 'master'
Fix: Adds missing field at config struct.

See merge request espressif/esp-mqtt!96
2021-05-26 15:51:45 +00:00
liuhan
8f3cac8c36 Client: Add optimize for depend on ssl 2021-05-24 16:14:02 +02:00
David Cermak
d8c9c7a9e7 Add support for partial transport writes
Partially addresses https://github.com/espressif/esp-idf/issues/6940
2021-05-24 10:58:42 +02:00
David Cermak
a00a3134c6 Add support for Retain flag in messages posted by events
Closes https://github.com/espressif/esp-mqtt/issues/193
2021-05-24 10:57:37 +02:00
flohas
06157be118 Add crt_bundle function pointer to be accessible from esp_mqtt_client_config_t 2021-05-24 10:32:10 +02:00
Euripedes Rocha
5b27d1896e Fix: Adds missing field at config struct.
If an user chooses to config broker by hostname it wasn't possible to
 add the path.
2021-05-14 15:57:42 +01:00
David Čermák
1db731f985 Merge branch 'feature/mqtt_unit_test_cleanup' into 'master'
Reduce the includes used in files.

See merge request espressif/esp-mqtt!93
2021-04-07 11:37:00 +00:00
Euripedes Rocha Filho
87fcce72c9 Reduce the includes used in all files.
- To reduce the dependencies to the minimal the number of includes was
  reduced.
2021-04-07 10:49:49 +01:00
suren.gabrielyan
2f57985c0b esp-mqtt: Added nullchecks for public APIs
Closes IDFGH-4724
Closes https://github.com/espressif/esp-mqtt/issues/185
2021-03-04 18:30:27 +04:00
David Cermak
001dc1a95e Config: Add missing nullcheck after cfg password allocation
Partially addresses https://github.com/espressif/esp-idf/issues/6440
2021-02-11 15:54:45 +01:00
Euripedes Rocha Filho
369f4207f8 Renames states and add missing handler on task
- The state transition on esp_mqtt_task was missing 2 states
- MQTT_STATE_ERROR removed
- Added a default case for state transition.
- Renamed MQTT_STATE_WAIT_TIMEOUT -> MQTT_STATE_WAIT_RECONNECT
2021-01-27 17:33:22 +00:00
David Čermák
a74adfa9eb Merge branch 'client_init_refactor' into 'master'
Clean client init

See merge request espressif/esp-mqtt!87
2021-01-21 15:57:52 +08:00
Euripedes Rocha Filho
e05ed2ce18 mqtt: Clean client init
- Moves check and copy of parameter to a function to reduce repetition
- Removes cfg variable to be explicit about what is being modified.
2021-01-19 11:54:09 +00:00
Euripedes Rocha Filho
b834be80a5 mqtt: Makes esp_mqtt_destroy_config void
- Makes the function a nop in case of NULL config.
2021-01-18 11:42:59 +00:00
David Cermak
e2de0f3e3e Publish: Allow for qos=0 messages to be stored using esp_mqtt_client_enqueue()
The API presents a boolean parameter to control storing the qos=0
messages into the internal outbox
2020-12-15 19:43:33 +01:00
David Cermak
2e35d4d4d5 Events: Add new event to report deleted messages from outbox 2020-12-09 10:14:54 +01:00
David Cermak
f44dcb1c26 Config: Add a new option to disable publishing when disconnected
Related https://github.com/espressif/esp-mqtt/pull/177
2020-12-09 10:14:54 +01:00
Umer Ilyas
dc7fd5c0b1 Publish: Add new API to enqueue qos>0 messages
Closes https://github.com/espressif/esp-mqtt/issues/155
2020-12-09 10:14:54 +01:00
Axel Lin
b7158a4aea mqtt: Remove unused mqtt_header_state_t
mqtt_header_state_t was added by commit 0450bd0093 ("MQTT Client:  Added support for receiving empty payload"),
but it's no longer used since commit fd564b1f17 ("client receive: refactor receive to read only one message to fragment only payload for longer messages").
Thus remove the unused mqtt_header_state_t.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2020-11-23 16:24:33 +08:00
David Cermak
8562437c8a mqtt_config: Add config value to disable keepalive mechanism
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
2020-11-18 14:41:44 +01:00
David Čermák
e8be6c3aa7 Merge branch 'feature/add_get_outbox_size' into 'master'
Add esp_mqtt_client_get_outbox_size API

See merge request espressif/esp-mqtt!82
2020-11-18 16:45:27 +08:00
David Čermák
65d8a813ea Merge branch 'bugfix/missing_unlock_and_cleanup' into 'master'
Minor fixes and cleanup

See merge request espressif/esp-mqtt!81
2020-11-18 16:44:41 +08:00
Axel Lin
0a1d9d0300 mqtt: Add esp_mqtt_client_get_outbox_size API
Allow application to get current outbox_size.
Application may try to send many publish request for a long period and then
system can hit OOM when publish QoS>1 with a busy borker.
Reduce OUTBOX_EXPIRED_TIMEOUT_MS does not help too much because the publish
freauency depends on the data received in different environment.
i.e. In some environment, sometimes it's easy to hit OOM before reaching OUTBOX_EXPIRED_TIMEOUT_MS.

To avoid such issue, add esp_mqtt_client_get_outbox_size API, so the application
can stop publishing to avoid OOM when outbox takes too much memory.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2020-11-11 17:13:32 +08:00