2#if defined(USE_ESP32) && defined(USE_MDNS)
12static const char *
const TAG =
"mdns";
14static void register_esp32(MDNSComponent *comp, StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services) {
19 esp_err_t err = mdns_init();
21 ESP_LOGW(TAG,
"Init failed: %s", esp_err_to_name(err));
27 mdns_hostname_set(hostname);
28 mdns_instance_name_set(hostname);
30 for (
const auto &service : services) {
32 SmallBufferWithHeapFallback<16, mdns_txt_item_t> txt_records(service.txt_records.size());
33 for (
size_t i = 0; i < service.txt_records.size(); i++) {
34 const auto &record = service.txt_records[i];
37 txt_records.get()[i].key = MDNS_STR_ARG(record.key);
38 txt_records.get()[i].value = MDNS_STR_ARG(record.value);
40 uint16_t port =
const_cast<TemplatableValue<uint16_t> &
>(service.port).value();
41 err = mdns_service_add(
nullptr, MDNS_STR_ARG(service.service_type), MDNS_STR_ARG(service.proto), port,
42 txt_records.get(), service.txt_records.size());
45 ESP_LOGW(TAG,
"Failed to register service %s: %s", MDNS_STR_ARG(service.service_type), esp_err_to_name(err));
const std::string & get_name() const
Get the name of this Application set by pre_setup().
void on_shutdown() override
void setup_buffers_and_register_(PlatformRegisterFn platform_register)
void IRAM_ATTR HOT delay(uint32_t ms)
Application App
Global storage of Application pointer - only one Application can exist.