Commit Graph

661 Commits

Author SHA1 Message Date
David Cermak
24b656ca4b MQTT: Moved Kconfig from esp-mqtt submodule to esp-idf to support docs genration in RTD 2022-12-16 08:38:48 +01:00
David Cermak
c5069977a4 MQTT: Integrate esp-mqtt library into idf
added docs and tests for mqtt library, small fixes (removed warnings, option for custom outbox, websocket bug fixed for longer transports). refactored to use common tcp_transport component, support for CMake build system.
Closes #2108
2022-12-16 08:38:48 +01:00
Euripedes Rocha
f80772b8d7 Bugfix: Remove Remove possible null pointer dereferences
- Removed a possible derefrence on data in case of MQTT5 SUBACK with
  MQTT5 disabled.
- Covered a case of NULL data on message with negative size.
- Use correct type on calloc for alpn_protos
- Changed strcasecmp to strncasecmp.
2022-12-15 13:02:46 +01:00
David Čermák
d5a2c0a7c6 Merge branch 'bugfix/subscribe_error_detection' into 'master'
Fix error code verification on SUBSCRIBE error

See merge request espressif/esp-mqtt!155
2022-12-15 18:59:01 +08:00
Euripedes Rocha
d1f6ad23b7 Fix error code verification on SUBSCRIBE error
- Return codes other than 0x1, 0x2, 0x3 and 0x80 are reserved and
  forbidden by the specification.
2022-12-05 15:22:48 +01:00
David Čermák
fde00340f1 Merge branch 'bugfix/event_queue_disabled_deafult' into 'master'
Fix the default configuration for event queue

See merge request espressif/esp-mqtt!153
2022-11-23 22:17:25 +08:00
Rocha Euripedes
fb42588a03 Fix the default configuration for event queue
- Event queue should be disabled, making it an opt-in feature.
2022-11-23 20:40:31 +08:00
David Čermák
3e0a118e0b Merge branch 'bugfix/missing_header' into 'master'
Adds missing header.

See merge request espressif/esp-mqtt!152
2022-11-04 00:26:54 +08:00
Euripedes Rocha
8a6005781d Adds missing header.
- esp_heap_caps is directly needed and wasn't included.
- For target it's indirecly included but for host test it's needed.
2022-11-03 15:26:43 +01:00
David Čermák
e80f3e6a87 Merge branch 'bugfix/stop_in_wait_reconnection' into 'master'
Moves state change when stopping the client

See merge request espressif/esp-mqtt!150
2022-10-26 21:19:00 +08:00
Euripedes Rocha
3738fcd196 Moves state change when stopping the client
- In some situations client could be left in a state where it's
  impossible to restart due to a state change while waiting for the
  stop. This guarantee that it's possible to start after calling stop.

Closes https://github.com/espressif/esp-mqtt/issues/239
2022-10-26 14:37:28 +02:00
David Čermák
5f297c0d62 Merge branch 'bugfix/set_error_on_subscribe_failure' into 'master'
Adds error code to MQTT_EVENT_SUBSCRIBED in case of failure

See merge request espressif/esp-mqtt!143
2022-10-21 23:46:02 +08:00
Euripedes Rocha
9af5c26045 Adds error code to MQTT_EVENT_SUBSCRIBED in case of failure
- Payload data parsed for error codes. Check only for first filter
  because our subscribe function only handle one topic filter in each
  call.

- Closes https://github.com/espressif/esp-mqtt/issues/233
2022-10-20 13:29:16 +02:00
David Čermák
2b52b50a6b Merge branch 'feature/debug_retry' into 'master'
Adds debug information on sending dup messages

See merge request espressif/esp-mqtt!145
2022-10-04 13:15:50 +08:00
Euripedes Rocha
47b3f9b899 Adds debug information on sending dup messages
- To support debug of resending dup messages QoS 1 and 2 a debug
  log was added.
2022-10-03 07:43:01 +00:00
David Čermák
a87fd9c738 Merge branch 'bugfix/ci_qemu' into 'master'
ci: Fix qemu build

See merge request espressif/esp-mqtt!147
2022-09-30 22:44:15 +08:00
David Cermak
68e8c4f829 ci: Fix qemu build 2022-09-30 16:14:36 +02:00
David Čermák
5688a84cbc Merge branch 'bugfix/extend_ci_idf_v5.1' into 'master'
ci: Build and Test QEMU on v5.0

See merge request espressif/esp-mqtt!142
2022-08-19 23:45:43 +08:00
David Cermak
9db9ee7648 ci: Build and Test QEMU on v5.0
* Patch the QEMU build
* Use public containers for build only tests on v5.0 and master
2022-08-18 16:51:16 +02:00
David Čermák
5f3cadb44d Merge branch 'bugfix/user_events' into 'master'
client: Add support for user events

See merge request espressif/esp-mqtt!140
2022-08-16 21:30:58 +08:00
David Cermak
97503cceb3 client: Add support for user events
Also supporting configurable queue size for the internal event loop.

Closes https://github.com/espressif/esp-mqtt/issues/230
2022-07-29 09:08:52 +02:00
David Čermák
9186e5fa00 Merge branch 'feature/unregister_event_api' into 'master'
Adds unregister event API

See merge request espressif/esp-mqtt!139
2022-07-28 21:07:25 +08:00
Euripedes Rocha
a9a9fe76bf Adds unregister event API
- Added to enable users to unregister event handler.

 Closes https://github.com/espressif/esp-idf/issues/9194
2022-07-28 10:36:24 +00:00
David Čermák
f14eeb9157 Merge branch 'feature/mqtt_config_struct_review' into 'master'
Restructure the client configuration struct

See merge request espressif/esp-mqtt!130
2022-07-20 18:40:24 +08:00
Euripedes Rocha
ae53d799da Restructure the client configuration struct
- Groups configuration fields by context.
- Removes user_context in favor of the event loop.
2022-07-13 08:37:20 -03:00
David Čermák
9a56b2f086 Merge branch 'bugfix/ping_timer_restart' into 'master'
MQTT tick not starting on connect and switch to esp_timer

See merge request espressif/esp-mqtt!138
2022-07-05 20:09:11 +08:00
Euripedes Rocha
89e5c6014f fix: MQTT tick not starting on connect and switch to esp_timer
- Tick should be updated on connect
- Dependency of system timer removed to avoid issues when updating via
  SNTP

Closes https://github.com/espressif/esp-mqtt/issues/225
2022-06-23 12:43:58 -03:00
David Čermák
493822dc9d Merge branch 'feature/support_mqtt_5' into 'master'
mqtt: Support MQTT5 protocol

See merge request espressif/esp-mqtt!125
2022-06-14 21:40:57 +08:00
yuanjm
fdf2aeb36f Seperate MQTT5 from MQTT 3.1.1 2022-06-14 09:37:46 +00:00
yuanjm
3d275f42b9 mqtt: Support MQTT5 protocol 2022-06-14 09:37:46 +00:00
David Čermák
0aa0a342a1 Merge branch 'bugfix/mqtt_ssl_build' into 'master'
mqtt_tcp: Fix build issue when `MQTT_ENABLE_SSL` is disabled

See merge request espressif/esp-mqtt!137
2022-06-14 17:31:41 +08:00
Laukik Hase
7253211a45 mqtt_tcp: Fix build issue when MQTT_SSL is disabled 2022-06-14 13:43:45 +05:30
David Čermák
a21c387d62 Merge branch 'refactor/tcp_transport' into 'master'
mqtt_client: Added checks for cleanly-closed connection and timeout

See merge request espressif/esp-mqtt!118
2022-06-09 15:20:24 +08:00
David Čermák
7a31a555e9 Merge branch 'bugfix/fix_esp_mqtt_client_enqueue' into 'master'
mqtt_client: fix esp_mqtt_client_enqueue for len=0 (GitHub PR)

See merge request espressif/esp-mqtt!135
2022-06-08 19:33:38 +08:00
David Čermák
16952ea66f Merge branch 'bugfix/implicit_malloc_host_test' into 'master'
Fix implicit malloc/free inclusion

See merge request espressif/esp-mqtt!134
2022-06-08 18:52:04 +08:00
Laukik Hase
e05d873aa2 Added checks for cleanly-closed connection and timeout
- Related MR: https://gitlab.espressif.cn:6688/espressif/esp-idf/-/merge_requests/16394
2022-06-08 16:12:11 +05:30
David Cermak
9299f5400f Fix implicit malloc/free inclusion
This fails when building on host
2022-06-08 05:16:29 +00:00
Craig Kewley
69b6493423 mqtt_client: fix esp_mqtt_client_enqueue for len=0
Commit 372b323 (mqtt_client: Fix mqtt send long data error, 2021-12-21)
removed the length calculation from esp_mqtt_client_enqueue_priv and
added it to esp_mqtt_client_publish. However, esp_mqtt_client_enqueue
was missed. Currently calls to esp_mqtt_client_enqueue appear to send no
data, fix this by adding the length calculation to esp_mqtt_client_enqueue.
2022-05-30 21:56:33 +01:00
David Čermák
7f765cac2c Merge branch 'feature/optimize_mqtt_transport_list' into 'master'
feat(mqtt): Optimize mqtt transport list and remove unused transport

See merge request espressif/esp-mqtt!131
2022-05-23 22:19:24 +08:00
Yuan Jian Min
647e0eff32 feat(mqtt): Optimize mqtt transport list and remove unused transport 2022-05-23 22:19:24 +08:00
David Čermák
684843a309 Merge branch 'bugfix/wrong_wss_port_definition' into 'master'
Fix WSS default port selection through menuconfig.

See merge request espressif/esp-mqtt!132
2022-05-17 15:43:37 +08:00
Euripedes Rocha
f6caaff254 Fix WSS default port selection through menuconfig.
Evaluate the correct define to select default port.

 - Closes https://github.com/espressif/esp-mqtt/issues/223
2022-05-17 07:16:07 +00:00
David Čermák
64f88b4412 Merge branch 'bugfix/fix_transport_config_documentation' into 'master'
Fix documentation of config struct

See merge request espressif/esp-mqtt!129
2022-05-03 20:09:10 +08:00
Euripedes Rocha
e31834c00f Fix documentation of config struct
- Transport selection enum was incorrectly pointed as having precedence
  over URI.

- Added names to unnamed enums and structs on typedefs.

- Reorganize config struct fields grouping fields with related context.
2022-05-02 13:29:39 -03:00
David Čermák
59b48a4d49 Merge branch 'bugfix/keep_alive_ping_periodic' into 'master'
Changes the moment we update keepalive_tick.

See merge request espressif/esp-mqtt!127
2022-04-19 22:16:19 +08:00
David Čermák
2cdcdcb4fa Merge branch 'bugfix/mqtt_fix_int_sign_mismatch' into 'master'
MQTT: Fix signature matching for some integer values

See merge request espressif/esp-mqtt!128
2022-04-12 19:35:51 +08:00
gabsuren
6b794e4708 MQTT: Fix signature matching for integer values
Closes https://github.com/espressif/esp-idf/issues/8482
2022-04-08 19:56:56 +04:00
Euripedes Rocha
2c2e6f38b5 Changes the moment we update keepalive_tick.
In order to keep sending keep alive messages in the scenario were client
publish too often with QoS0 the keepalive is updated when the response
is received.
2022-04-07 09:14:03 -03:00
David Čermák
5878e2e8a6 Merge branch 'module_logging_tag_lower_case' into 'master'
Make the mqtt submodule logging tags lower case

See merge request espressif/esp-mqtt!122
2022-04-04 18:54:43 +08:00
AndriiFilippov
fb3184cc14 Make the mqtt submodule logging tags lower case 2022-04-04 10:33:06 +02:00