Commit Graph
360 Commits
Author SHA1 Message Date
David Cermak a7e5accc7e CI: Temporariy update QEMU image with python 3.7.0
This will be removed once we updated QEMU image, based on the new CI
environment docker image.
2021-06-24 16:34:22 +02:00
David Cermak 90f0bf8dd4 Updated docker images to work with latest IDFv4.4 2021-06-24 07:40:43 +02:00
David Cermak 1a94efe8b9 outbox: Cleanup all items when connection closes 2021-06-24 06:31:29 +02:00
David Cermak 2e15c9a5fe Fix IDF supported features: cert-bundle from v4.4 2021-06-17 12:33:34 +02:00
David Cermak 626dc3645b CI: Add build test for IDF v4.3 2021-06-17 12:33:34 +02:00
David Cermak c7ae67b7f0 CI: Update QEMU image and test against IDF master(v4.4-dev)
Also using test-apps instead of weekend tests.
2021-06-17 12:33:18 +02:00
David Čermák afba070093 Merge branch 'bugfix/remove_unused_defines' into 'master'
Removes unused defines.

See merge request espressif/esp-mqtt!100
2021-06-01 05:32:40 +00:00
Euripedes Rocha eec6f0e17d Removes unused defines.
- mqtt_config.h had some defines that were not used. This removes them.

Closes https://github.com/espressif/esp-mqtt/issues/194
2021-05-31 13:29:25 +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
David Čermák 7db36f9177 Merge branch 'feature/mqtt_ssl_optimize' into 'master'
esp-mqtt: Add configure to separate code for depend on ssl

See merge request espressif/esp-mqtt!95
2021-05-26 15:51:15 +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
David Čermák e1a90d0161 Merge branch 'bugfix/outbox_del_single_STAILQ_FOREACH' into 'master'
mqtt_outbox: Use STAILQ_FOREACH for outbox_delete_single_expired

See merge request espressif/esp-mqtt!97
2021-05-22 06:01:35 +00: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
Axel Lin ff8e64839a mqtt_outbox: Use STAILQ_FOREACH for outbox_delete_single_expired
For the delete one entry and return case, no need to use STAILQ_FOREACH_SAFE.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2021-04-20 11:27:42 +08: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
David Čermák 2b20b5117c Merge branch 'bugfix/mqtt_add_null_check' into 'master'
esp-mqtt: Add null checks for public APIs

See merge request espressif/esp-mqtt!94
2021-03-10 17:59:17 +00: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 Čermák 9fdf7b6138 Merge branch 'bugfix/disable_file_in_logs' into 'master'
platform: Remove __FILE__ macro from error logs

See merge request espressif/esp-mqtt!92
2021-02-23 17:07:26 +00:00
Angus Gratton 169b6986eb platform: Remove __FILE__ macro from error logs 2021-02-22 18:11:41 +01:00
David Čermák fd2d04e687 Merge branch 'bugfix/vs_nullcheck_on_malloc' into 'master'
Config: Add missing nullcheck after cfg password allocation

See merge request espressif/esp-mqtt!91
2021-02-11 23:39:32 +08: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
David Čermák a5a60752c0 Merge branch 'bugfix/handle_missing_mqtt_states' into 'master'
Renames states and add missing handler on esp mqtt task

See merge request espressif/esp-mqtt!90
2021-02-02 22:14:09 +08: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 1a64f3176c Merge branch 'feature/public_mqtt_supported_features' into 'master'
Moves mqtt_supported_features to public includes.

See merge request espressif/esp-mqtt!89
2021-01-21 18:41:31 +08:00
Euripedes Rocha Filho 0213382593 mqtt: Moves mqtt_supported_features to public includes.
- To simplify user code to support multiple IDF versions.

Closes https://github.com/espressif/esp-mqtt/issues/184
2021-01-21 09:49:24 +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
David Čermák 7a38867ce2 Merge branch 'destroy_config_refactor' into 'master'
Makes esp_mqtt_destroy_config void

See merge request espressif/esp-mqtt!86
2021-01-21 15:24:06 +08:00
David Čermák 2530edbdce Merge branch 'bugfix/allow_zero_length_username' into 'master'
mqtt_msg: Set zero length username if password is set without username

See merge request espressif/esp-mqtt!88
2021-01-21 15:22:05 +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
Axel Lin 3efac7b7fa mqtt_msg: Set zero length username if password is set without username
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>
2021-01-19 08:36:17 +01: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 Čermák 9ea804e0ab Merge branch 'feature/queue_if_disconnect' into 'master'
esp-mqtt: More configs to queue when disconnected, events on delete, incremental msg-id

See merge request espressif/esp-mqtt!85
2020-12-21 19:42:15 +08: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
David Cermak 8bb4a26f46 Config: Add a new option to use incremental message id
This option is off by default, so the client still uses
random message id unless CONFIG_MQTT_MSG_ID_INCREMENTAL is set

Closes https://github.com/espressif/esp-mqtt/issues/176
2020-12-09 10:12:57 +01:00
David Cermak f65d5d05db Cleanup public include dirs 2020-12-06 11:26:03 +01:00
David Čermák cef3e16c5d Merge branch 'bugfix/unused_mqtt_header_state_t' into 'master'
Remove unused mqtt_header_state_t

See merge request espressif/esp-mqtt!84
2020-12-03 18:48:17 +08: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 Čermák da850b0add Merge branch 'feature/support_no_keepalive' into 'master'
mqtt_config: Add config value to disable keepalive mechanism

See merge request espressif/esp-mqtt!83
2020-11-19 22:07:05 +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