diff --git a/src/MyMesh.cpp b/src/MyMesh.cpp index 30c9a12..0ed8280 100644 --- a/src/MyMesh.cpp +++ b/src/MyMesh.cpp @@ -733,6 +733,21 @@ MyMesh::MyMesh(mesh::MainBoard &board, mesh::Radio &radio, mesh::MillisecondCloc _prefs.adc_multiplier = 0.0f; // 0.0f means use default board multiplier } +MyMesh::~MyMesh() { + // Clean up dynamically allocated resources +#ifdef WITH_MQTT + delete _web_config; + _web_config = nullptr; + delete _mqtt_bridge; + _mqtt_bridge = nullptr; +#endif + +#ifdef WITH_ETHERNET + delete _mqtt_bridge; + _mqtt_bridge = nullptr; +#endif +} + void MyMesh::begin(FILESYSTEM *fs) { mesh::Mesh::begin(); _fs = fs; @@ -1289,9 +1304,9 @@ const char* MyMesh::getMQTTStatus() const { const char* MyMesh::getWiFiStatus() const { switch (_wifi_mgr.getState()) { - case WiFiState::CONNECTED: return "connected"; - case WiFiState::CONNECTING: return "connecting"; - case WiFiState::AP_MODE: return "ap_mode"; + case NetworkState::CONNECTED: return "connected"; + case NetworkState::CONNECTING: return "connecting"; + case NetworkState::AP_MODE: return "ap_mode"; default: return "disconnected"; } } diff --git a/src/MyMesh.h b/src/MyMesh.h index c68f270..c99f7df 100644 --- a/src/MyMesh.h +++ b/src/MyMesh.h @@ -125,21 +125,21 @@ class MyMesh : public mesh::Mesh, public CommonCLICallbacks { #ifdef WITH_MQTT WiFiManager _wifi_mgr; - MQTTBridge* _mqtt_bridge; - WebConfig* _web_config; + MQTTBridge* _mqtt_bridge = nullptr; + WebConfig* _web_config = nullptr; WiFiConfig _wifi_config; MQTTConfig _mqtt_config; - unsigned long _last_mqtt_stats; + unsigned long _last_mqtt_stats = 0; void initMQTT(); #endif #ifdef WITH_ETHERNET EthernetManager _eth_mgr; - MQTTBridge* _mqtt_bridge; + MQTTBridge* _mqtt_bridge = nullptr; MQTTConfig _mqtt_config; EthernetConfig _eth_config; - unsigned long _last_mqtt_stats; + unsigned long _last_mqtt_stats = 0; void initEthernet(); #endif @@ -196,6 +196,7 @@ protected: public: MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables); + ~MyMesh(); // Clean up dynamically allocated resources void begin(FILESYSTEM* fs);