Make sure MQTT config is updated for current connection if changed

This commit is contained in:
Gunnar Skjold
2023-12-22 19:47:00 +01:00
parent 32ad71bba6
commit 557ba659d5
3 changed files with 30 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ public:
};
void setCaVerification(bool);
void setConfig(MqttConfig& mqttConfig);
bool connect();
void disconnect();

View File

@@ -7,6 +7,10 @@ void AmsMqttHandler::setCaVerification(bool caVerification) {
this->caVerification = caVerification;
}
void AmsMqttHandler::setConfig(MqttConfig& mqttConfig) {
this->mqttConfig = mqttConfig;
}
bool AmsMqttHandler::connect() {
if(millis() - lastMqttRetry < 10000) {
yield();
@@ -93,10 +97,19 @@ bool AmsMqttHandler::connect() {
if(debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("CA verification disabled\n"));
mqttSecureClient->setInsecure();
}
if(mqttClient != NULL) {
mqttClient->stop();
delete mqttClient;
}
mqttClient = mqttSecureClient;
if(debugger->isActive(RemoteDebug::DEBUG)) debugger->printf_P(PSTR("MQTT SSL setup complete (%dkb free heap)\n"), ESP.getFreeHeap());
}
} else if(mqttSecureClient != NULL) {
mqttSecureClient->stop();
delete mqttSecureClient;
mqttSecureClient = NULL;
mqttClient = NULL;
}
if(mqttClient == NULL) {