From c8cd1545dcafa2c5ed55ee035fe2e154e1ab383f Mon Sep 17 00:00:00 2001 From: Johnathon Slightham Date: Sat, 28 Feb 2026 22:36:13 -0500 Subject: [PATCH] Fix mDNS crash --- .../rpc/include/wireless/mDNSDiscoveryService.h | 4 ++++ .../rpc/wireless/mDNSDiscoveryService.cpp | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/components/rpc/include/wireless/mDNSDiscoveryService.h b/components/rpc/include/wireless/mDNSDiscoveryService.h index 628d4a3..5cf0a51 100644 --- a/components/rpc/include/wireless/mDNSDiscoveryService.h +++ b/components/rpc/include/wireless/mDNSDiscoveryService.h @@ -15,6 +15,10 @@ public: ~mDNSDiscoveryService() override; void set_connected_boards(const std::vector& boards) override; +private: + std::string m_module_id; + std::string m_module_type; + std::string m_connected_modules; }; #endif //DISCOVERYSERVICE_H diff --git a/components/rpc/wireless/mDNSDiscoveryService.cpp b/components/rpc/wireless/mDNSDiscoveryService.cpp index 5ca4435..84eec2c 100644 --- a/components/rpc/wireless/mDNSDiscoveryService.cpp +++ b/components/rpc/wireless/mDNSDiscoveryService.cpp @@ -23,9 +23,12 @@ mDNSDiscoveryService::mDNSDiscoveryService() { mdns_service_add(nullptr, "_robotcontrol", "_tcp", TCP_PORT, nullptr, 0); mdns_service_instance_name_set("_robotcontrol", "_tcp", "Robot Control TCP Server"); + m_module_id = std::to_string(config_manager.get_module_id()); + m_module_type = std::to_string(config_manager.get_module_type()); + mdns_txt_item_t service_txt_data[3] = { - {"module_id",std::to_string(config_manager.get_module_id()).c_str()}, - {"module_type",std::to_string(config_manager.get_module_type()).c_str()}, + {"module_id", m_module_id.c_str()}, + {"module_type",m_module_type.c_str()}, {"connected_modules",""}, }; @@ -48,10 +51,14 @@ void mDNSDiscoveryService::set_connected_boards(const std::vector& boards) } } + m_module_id = std::to_string(config_manager.get_module_id()); + m_module_type = std::to_string(config_manager.get_module_type()); + m_connected_modules = ss.str(); + mdns_txt_item_t service_txt_data[3] = { - {"module_id",std::to_string(config_manager.get_module_id()).c_str()}, - {"module_type",std::to_string(config_manager.get_module_type()).c_str()}, - {"connected_modules",ss.str().c_str()}, + {"module_id", m_module_id.c_str()}, + {"module_type", m_module_type.c_str()}, + {"connected_modules", m_connected_modules.c_str()}, }; mdns_service_txt_set("_robotcontrol", "_tcp", service_txt_data, 3); }