Commit Graph
316 Commits
Author SHA1 Message Date
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
David Čermák 36d721e60b Merge branch 'bugfix/mqtt_err_flags_extention' into 'master'
error reporting: extended error event to use errno captured in transports

See merge request espressif/esp-mqtt!80
2020-11-13 05:10:58 +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
Axel Lin 673086e13a mqtt_outbox: Remove unused retry_count field from outbox_item_t
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2020-11-09 16:08:22 +08:00
Axel Lin 259baaec96 config: Fix typo for configuring OUTBOX_EXPIRED_TIMEOUT_MS
In esp-idf, it uses CONFIG_MQTT_OUTBOX_EXPIRED_TIMEOUT_MS rather than
CONFIG_OUTBOX_EXPIRED_TIMEOUT_MS.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2020-11-09 16:07:10 +08:00
Axel Lin 845c2a3a1e mqtt: Fix missing MQTT_API_UNLOCK in esp_mqtt_client_stop error path
Fixes: 5e17dcaeb2 ("MQTT: Fix esp_mqtt_client_stop deadlock")
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2020-11-09 16:06:58 +08:00
David Cermak 23c8e1ecf5 error reporting: extended error event to use errno captured in transports
Also renamed error type MQTT_ERROR_TYPE_ESP_TLS to
MQTT_ERROR_TYPE_TCP_TRANSPORT, as the former was confusing and might
have implied the error occurred in TLS layer.

Applicable IDF version >= v4.3

Closes https://github.com/espressif/esp-idf/issues/5906
2020-11-04 08:01:06 +01:00
David Čermák d6613e995b Merge branch 'bugfix/size_t_for_all_lengths' into 'master'
Use size_t for all lengths

See merge request espressif/esp-mqtt!79
2020-10-12 18:16:29 +08:00
Angus Gratton b9db8d9020 Use size_t for all lengths
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).
2020-10-09 16:33:12 +11:00
David Čermák fcd7f0d083 Merge branch 'bugfix/network_timeout' into 'master'
Allow to configure network timeout

See merge request espressif/esp-mqtt!78
2020-09-02 19:38:15 +08:00
Dmitriy Shilin a03228ac46 Allow to configure network timeout
Merges https://github.com/espressif/esp-mqtt/pull/166
2020-09-02 08:36:01 +02:00
David Čermák 01594bf118 Merge branch 'feature/mqtt_support_esp_ds' into 'master'
esp-mqtt: Add support for Digital Signature (through ESP-TLS)

See merge request espressif/esp-mqtt!71
2020-08-18 15:22:41 +08:00
Aditya Patwardhan 7d8e59de00 mqtt: Add support for Digital Signature (through ESP-TLS)
Digital Signature enables hardware accelerated RSA signature
for TLS handshake.The RSA private key(client key) is also stored in
encrypted format and ecryption key is stored in hardware(efuse) which adds
additional level of security for mutual authentication.
* Digital Signature is only supported for ESP32-S2.

Applicable IDF version >= v4.3
2020-08-18 11:55:43 +05:30
David Čermák ae408d9a69 Merge branch 'feature/outbox_limit' into 'master'
MQTT: Cleanup expired messages when offline

See merge request espressif/esp-mqtt!76
2020-08-18 14:08:57 +08:00
David Čermák a8ef2a434b Merge branch 'bugfix/read_error_event' into 'master'
MQTT: add dispatch error event for read errors

See merge request espressif/esp-mqtt!75
2020-08-18 14:07:50 +08:00
David Čermák 867773e423 Merge branch 'fix/secure_element_feature' into 'master'
esp-mqtt: i) fix version check for secure_element

See merge request espressif/esp-mqtt!70
2020-08-18 14:04:39 +08:00
David Čermák ac7209049f Merge branch 'bugfix/stop_from_event' into 'master'
MQTT: Fix esp_mqtt_client_stop deadlock

See merge request espressif/esp-mqtt!74
2020-08-17 22:01:08 +08:00
Marius Vikhammer bdadd77c6e mqtt: deleted expired messages even when offline
As long as the client was disconnect no cleanup were performed,
consuming memory for every message published. Even if they were already
expired and would be discarded when reconnected.

Also moves delete of expired msgs before retransmit is done.
This avoids situtations where a message could be sent even if it was
expired.

Closes https://github.com/espressif/esp-idf/issues/5668
2020-08-10 16:42:32 +08:00
Marius Vikhammer f7325bfa10 mqtt: esp_mqtt_client_publish now returns msd id for QoS>0 when offline 2020-08-10 14:47:05 +08:00
Marius Vikhammer d4aaec08ff MQTT: add dispatch error event for read errors
Closes https://github.com/espressif/esp-idf/issues/5704
2020-08-07 17:54:40 +08:00
Marius Vikhammer 5e17dcaeb2 MQTT: Fix esp_mqtt_client_stop deadlock
esp_mqtt_client_stop would lead to a deadlock (with itself) when called
from the event handler.

Updated comments to reflect that some functions should not be called from
the event handler.

Closes https://github.com/espressif/esp-mqtt/issues/163
2020-08-04 19:26:37 +08:00
Aditya Patwardhan db4bce01ab mqtt: i)fix version check for secure_element
ii) fix secure_element error return

The feature allows use of secure element for TLS connections, which makes use of hardware security for storage of client private keys(only keys with ECC algorithm)

Applicable IDF versions: >= 4.2
2020-08-03 09:45:27 +05:30
David Čermák 702da6d528 Merge branch 'bugfix/build_test_fix' into 'master'
CI: Fixes build test issues

See merge request espressif/esp-mqtt!72
2020-07-31 19:40:25 +08:00
David Cermak 0bafcc5188 ci: Add IDF v4.2 to build tests
Also fixes build issues when default config carried over IDF releases --
always remove previous `sdkconfig` before a new build
2020-07-30 16:54:00 +02:00
David Cermak 651c2fb4a2 ci: Fix travis build with legacy IDFs 2020-07-24 14:56:12 +02:00
David Čermák d754293d25 Merge branch 'feature/check_cfg_consistency' into 'master'
Add check for consistency between config settings

See merge request espressif/esp-mqtt!69
2020-07-17 00:05:04 +08:00
Marius Vikhammer 8a412c147d Add check for consistency between config settings
Warn user if the MQTT config seems misconfigured, e.g.
user specifies a SSL certificate, but SSL not activated
2020-07-08 12:54:00 +08:00
David Čermák 5b8c04f348 Merge branch 'feature/allow_query_in_uri' into 'master'
Allow the query part of the uri to be a part of the path

See merge request espressif/esp-mqtt!68
2020-06-29 21:16:48 +08:00
Marius Vikhammer 40b06deb10 Allow the query part of the uri to be a part of the path
Closes IDFGH-3565
Closes https://github.com/espressif/esp-mqtt/issues/161
2020-06-29 10:33:42 +08:00
David Čermák 109985d3ad Merge branch 'feature/enable_tls_with_secure_element' into 'master'
esp-mqtt: add support for tls with secure element (ATECC608A)

See merge request espressif/esp-mqtt!66
2020-06-25 13:42:41 +08:00
Aditya Patwardhan a7ff9afa3f esp-mqtt: add support for tls with secure element (ATECC608A)
Closes https://github.com/espressif/esp-mqtt/issues/156
2020-06-25 10:36:58 +05:30
David Čermák 2f9b337071 Merge branch 'feature/skip_cmn_name_check' into 'master'
SSL: add config option for skipping common name check

See merge request espressif/esp-mqtt!67
2020-06-10 15:13:58 +08:00
Marius Vikhammer 5e8950e681 SSL: add config option for skipping common name check
Closes IDFGH-3408
Closes https://github.com/espressif/esp-mqtt/issues/158
2020-06-09 14:23:40 +08:00
David Čermák 6bc94add89 Merge branch 'bugfix/confusing_print' into 'master'
mqtt_print: Change the message printed after MQTT connection failure

See merge request espressif/esp-mqtt!65
2020-04-28 19:04:34 +08:00
David Čermák 20bf9928d4 Merge branch 'bugfix/block_api_docs' into 'master'
docs: Makes clear that publish API could block

See merge request espressif/esp-mqtt!64
2020-04-28 15:22:46 +08:00
Piyush Shah fb41520206 mqtt_print: Change the message printed after MQTT connection failure
Since the original message was confusing.
2020-04-24 23:05:47 +05:30
David Cermak 615aeae0c2 docs: Makes clear that publish API could block
Closes https://github.com/espressif/esp-idf/issues/5077
2020-04-24 14:26:37 +02:00
David Čermák 0c3d306589 Merge branch 'bugfix/print_messages' into 'master'
Some changes to debug prints

See merge request espressif/esp-mqtt!63
2020-04-08 01:33:01 +08:00
Piyush Shah b02746492a esp_mqtt: Change an error print to use ESP_LOGE instead of ESP_LOGI
And another one changed from LOGI to LOGD
2020-04-06 12:13:18 +05:30
David Čermák 50dc010b97 Merge branch 'bugfix/abort_race_condition' into 'master'
esp_mqtt_abort_connection: Fixed an issue which could result in a race...

See merge request espressif/esp-mqtt!62
2020-04-01 22:39:06 +08:00
Piyush Shah dc1a635a97 esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash 2020-03-30 19:59:27 +05:30
David Čermák 0fc904c5d8 Merge branch 'feature/config_mqtt_task_prio' into 'master'
config: option to configure mqtt task priority

See merge request espressif/esp-mqtt!61
2020-03-20 14:50:07 +08:00
Simon Brélivet d8e2081332 config: option to configure mqtt task priority 2020-03-17 13:34:27 +01:00
David Čermák 9b750651fc Merge branch 'bugfix/add_out_buff_size' into 'master'
config: option to configure output buffer size

See merge request espressif/esp-mqtt!60
2020-03-12 04:31:35 +08:00
David Cermak 61a8f4b63c ci: fix build issue (stale CMake cache) between 4.1 and 4.2 2020-03-10 16:19:51 +01:00