mirror of
https://github.com/esphome/esphome.git
synced 2025-11-12 04:45:47 +00:00
[mdns] Eliminate redundant hostname copy to save heap memory
This commit is contained in:
@@ -37,8 +37,6 @@ MDNS_STATIC_CONST_CHAR(SERVICE_TCP, "_tcp");
|
|||||||
MDNS_STATIC_CONST_CHAR(VALUE_VERSION, ESPHOME_VERSION);
|
MDNS_STATIC_CONST_CHAR(VALUE_VERSION, ESPHOME_VERSION);
|
||||||
|
|
||||||
void MDNSComponent::compile_records_(StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services) {
|
void MDNSComponent::compile_records_(StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services) {
|
||||||
this->hostname_ = App.get_name();
|
|
||||||
|
|
||||||
// IMPORTANT: The #ifdef blocks below must match COMPONENTS_WITH_MDNS_SERVICES
|
// IMPORTANT: The #ifdef blocks below must match COMPONENTS_WITH_MDNS_SERVICES
|
||||||
// in mdns/__init__.py. If you add a new service here, update both locations.
|
// in mdns/__init__.py. If you add a new service here, update both locations.
|
||||||
|
|
||||||
@@ -179,7 +177,7 @@ void MDNSComponent::dump_config() {
|
|||||||
ESP_LOGCONFIG(TAG,
|
ESP_LOGCONFIG(TAG,
|
||||||
"mDNS:\n"
|
"mDNS:\n"
|
||||||
" Hostname: %s",
|
" Hostname: %s",
|
||||||
this->hostname_.c_str());
|
App.get_name().c_str());
|
||||||
#ifdef USE_MDNS_STORE_SERVICES
|
#ifdef USE_MDNS_STORE_SERVICES
|
||||||
ESP_LOGV(TAG, " Services:");
|
ESP_LOGV(TAG, " Services:");
|
||||||
for (const auto &service : this->services_) {
|
for (const auto &service : this->services_) {
|
||||||
|
|||||||
@@ -76,7 +76,6 @@ class MDNSComponent : public Component {
|
|||||||
#ifdef USE_MDNS_STORE_SERVICES
|
#ifdef USE_MDNS_STORE_SERVICES
|
||||||
StaticVector<MDNSService, MDNS_SERVICE_COUNT> services_{};
|
StaticVector<MDNSService, MDNS_SERVICE_COUNT> services_{};
|
||||||
#endif
|
#endif
|
||||||
std::string hostname_;
|
|
||||||
void compile_records_(StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services);
|
void compile_records_(StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#if defined(USE_ESP32) && defined(USE_MDNS)
|
#if defined(USE_ESP32) && defined(USE_MDNS)
|
||||||
|
|
||||||
#include <mdns.h>
|
#include <mdns.h>
|
||||||
|
#include "esphome/core/application.h"
|
||||||
#include "esphome/core/hal.h"
|
#include "esphome/core/hal.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
#include "mdns_component.h"
|
#include "mdns_component.h"
|
||||||
@@ -27,8 +28,9 @@ void MDNSComponent::setup() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mdns_hostname_set(this->hostname_.c_str());
|
const char *hostname = App.get_name().c_str();
|
||||||
mdns_instance_name_set(this->hostname_.c_str());
|
mdns_hostname_set(hostname);
|
||||||
|
mdns_instance_name_set(hostname);
|
||||||
|
|
||||||
for (const auto &service : services) {
|
for (const auto &service : services) {
|
||||||
auto txt_records = std::make_unique<mdns_txt_item_t[]>(service.txt_records.size());
|
auto txt_records = std::make_unique<mdns_txt_item_t[]>(service.txt_records.size());
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <ESP8266mDNS.h>
|
#include <ESP8266mDNS.h>
|
||||||
#include "esphome/components/network/ip_address.h"
|
#include "esphome/components/network/ip_address.h"
|
||||||
#include "esphome/components/network/util.h"
|
#include "esphome/components/network/util.h"
|
||||||
|
#include "esphome/core/application.h"
|
||||||
#include "esphome/core/hal.h"
|
#include "esphome/core/hal.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
#include "mdns_component.h"
|
#include "mdns_component.h"
|
||||||
@@ -20,7 +21,7 @@ void MDNSComponent::setup() {
|
|||||||
this->compile_records_(services);
|
this->compile_records_(services);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MDNS.begin(this->hostname_.c_str());
|
MDNS.begin(App.get_name().c_str());
|
||||||
|
|
||||||
for (const auto &service : services) {
|
for (const auto &service : services) {
|
||||||
// Strip the leading underscore from the proto and service_type. While it is
|
// Strip the leading underscore from the proto and service_type. While it is
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "esphome/components/network/ip_address.h"
|
#include "esphome/components/network/ip_address.h"
|
||||||
#include "esphome/components/network/util.h"
|
#include "esphome/components/network/util.h"
|
||||||
|
#include "esphome/core/application.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
#include "mdns_component.h"
|
#include "mdns_component.h"
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ void MDNSComponent::setup() {
|
|||||||
this->compile_records_(services);
|
this->compile_records_(services);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MDNS.begin(this->hostname_.c_str());
|
MDNS.begin(App.get_name().c_str());
|
||||||
|
|
||||||
for (const auto &service : services) {
|
for (const auto &service : services) {
|
||||||
// Strip the leading underscore from the proto and service_type. While it is
|
// Strip the leading underscore from the proto and service_type. While it is
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "esphome/components/network/ip_address.h"
|
#include "esphome/components/network/ip_address.h"
|
||||||
#include "esphome/components/network/util.h"
|
#include "esphome/components/network/util.h"
|
||||||
|
#include "esphome/core/application.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
#include "mdns_component.h"
|
#include "mdns_component.h"
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ void MDNSComponent::setup() {
|
|||||||
this->compile_records_(services);
|
this->compile_records_(services);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MDNS.begin(this->hostname_.c_str());
|
MDNS.begin(App.get_name().c_str());
|
||||||
|
|
||||||
for (const auto &service : services) {
|
for (const auto &service : services) {
|
||||||
// Strip the leading underscore from the proto and service_type. While it is
|
// Strip the leading underscore from the proto and service_type. While it is
|
||||||
|
|||||||
Reference in New Issue
Block a user