Skip to content

Commit 06d013b

Browse files
Merge pull request #557 from euripedesrocha/fix_lastwill
Adds missing configuration fields
2 parents f032a9f + d4c6d5e commit 06d013b

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

components/esp_mqtt_cxx/esp_mqtt_cxx.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
/*
2-
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

77
#include <string>
88
#include <algorithm>
99
#include <stdexcept>
10+
#include <variant>
1011

1112
#include "mqtt_client.h"
1213
#include "esp_log.h"
1314

1415
#include "esp_mqtt.hpp"
15-
#include "esp_mqtt_client_config.hpp"
1616

1717
namespace {
1818

@@ -133,6 +133,22 @@ esp_mqtt_client_config_t make_config(BrokerConfiguration const &broker, ClientCr
133133
esp_mqtt_client_config_t mqtt_client_cfg{};
134134
config_broker(mqtt_client_cfg, broker);
135135
config_client_credentials(mqtt_client_cfg, credentials);
136+
mqtt_client_cfg.session.keepalive = config.session.keepalive;
137+
mqtt_client_cfg.session.last_will.msg = config.session.last_will.lwt_msg;
138+
mqtt_client_cfg.session.last_will.topic = config.session.last_will.lwt_topic;
139+
mqtt_client_cfg.session.last_will.msg_len = config.session.last_will.lwt_msg_len;
140+
mqtt_client_cfg.session.last_will.qos = config.session.last_will.lwt_qos;
141+
mqtt_client_cfg.session.last_will.retain = config.session.last_will.lwt_retain;
142+
mqtt_client_cfg.session.protocol_ver = config.session.protocol_ver;
143+
mqtt_client_cfg.session.disable_keepalive = config.session.disable_keepalive;
144+
mqtt_client_cfg.network.reconnect_timeout_ms = config.connection.reconnect_timeout_ms;
145+
mqtt_client_cfg.network.timeout_ms = config.connection.network_timeout_ms;
146+
mqtt_client_cfg.network.disable_auto_reconnect = config.connection.disable_auto_reconnect;
147+
mqtt_client_cfg.network.refresh_connection_after_ms = config.connection.refresh_connection_after_ms;
148+
mqtt_client_cfg.task.priority = config.task.task_prio;
149+
mqtt_client_cfg.task.stack_size = config.task.task_stack;
150+
mqtt_client_cfg.buffer.size = config.buffer_size;
151+
mqtt_client_cfg.buffer.out_size = config.out_buffer_size;
136152
return mqtt_client_cfg;
137153
}
138154
}
@@ -150,7 +166,6 @@ Client::Client(esp_mqtt_client_config_t const &config) : handler(esp_mqtt_clien
150166
CHECK_THROW_SPECIFIC(esp_mqtt_client_start(handler.get()), mqtt::MQTTException);
151167
}
152168

153-
154169
void Client::mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) noexcept
155170
{
156171
ESP_LOGD(TAG, "Event dispatched from event loop base=%s, event_id=%" PRIu32, base, event_id);

0 commit comments

Comments
 (0)