From a1773e0a3cedc54941ed77df112b1ba1195c6a6b Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 5 Sep 2025 14:40:32 -0500 Subject: [PATCH] fix warning --- esphome/components/mdns/mdns_component.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/esphome/components/mdns/mdns_component.cpp b/esphome/components/mdns/mdns_component.cpp index 90dcb7958a..5d9788198f 100644 --- a/esphome/components/mdns/mdns_component.cpp +++ b/esphome/components/mdns/mdns_component.cpp @@ -10,6 +10,8 @@ // Macro to define strings in PROGMEM on ESP8266, regular memory on other platforms #define MDNS_STATIC_CONST_CHAR(name, value) static const char name[] PROGMEM = value // Helper to get string from PROGMEM - returns a temporary std::string +// Only define this function if we have services that will use it +#if defined(USE_API) || defined(USE_PROMETHEUS) || defined(USE_WEBSERVER) || defined(USE_MDNS_EXTRA_SERVICES) static std::string mdns_string_p(const char *src) { char buf[64]; strncpy_P(buf, src, sizeof(buf) - 1); @@ -18,6 +20,10 @@ static std::string mdns_string_p(const char *src) { } #define MDNS_STR(name) mdns_string_p(name) #else +// If no services are configured, we still need the fallback service but it uses string literals +#define MDNS_STR(name) std::string(name) +#endif +#else // On non-ESP8266 platforms, use regular const char* #define MDNS_STATIC_CONST_CHAR(name, value) static constexpr const char *name = value #define MDNS_STR(name) name