diff --git a/esphome/components/api/api_server.cpp b/esphome/components/api/api_server.cpp index cfaf4c2ff8..5b096788f5 100644 --- a/esphome/components/api/api_server.cpp +++ b/esphome/components/api/api_server.cpp @@ -32,7 +32,7 @@ APIServer::APIServer() { global_api_server = this; } void APIServer::socket_failed_(const LogString *msg) { ESP_LOGW(TAG, "Socket %s: errno %d", LOG_STR_ARG(msg), errno); - this->close_socket_(); + this->destroy_socket_(); this->mark_failed(); } @@ -623,7 +623,7 @@ void APIServer::on_shutdown() { this->shutting_down_ = true; // Close the listening socket to prevent new connections - this->close_socket_(); + this->destroy_socket_(); // Change batch delay to 5ms for quick flushing during shutdown this->batch_delay_ = 5; diff --git a/esphome/components/api/api_server.h b/esphome/components/api/api_server.h index 528006ed02..e1a4f2591d 100644 --- a/esphome/components/api/api_server.h +++ b/esphome/components/api/api_server.h @@ -249,8 +249,8 @@ class APIServer : public Component, void add_state_subscription_(std::string entity_id, optional attribute, std::function f, bool once); #endif // USE_API_HOMEASSISTANT_STATES - // Listen sockets use LwIPSocketImpl/BSDSocketImpl whose destructors call close() - inline void close_socket_() { + // Socket destructor will close or abort depending on platform + inline void destroy_socket_() { delete this->socket_; this->socket_ = nullptr; } diff --git a/esphome/components/captive_portal/dns_server_esp32_idf.cpp b/esphome/components/captive_portal/dns_server_esp32_idf.cpp index 737ce956b3..bd9989a40c 100644 --- a/esphome/components/captive_portal/dns_server_esp32_idf.cpp +++ b/esphome/components/captive_portal/dns_server_esp32_idf.cpp @@ -70,14 +70,14 @@ void DNSServer::start(const network::IPAddress &ip) { int err = this->socket_->bind((struct sockaddr *) &server_addr, addr_len); if (err != 0) { ESP_LOGE(TAG, "Bind failed: %d", errno); - this->close_socket_(); + this->destroy_socket_(); return; } ESP_LOGV(TAG, "Bound to port %d", DNS_PORT); } void DNSServer::stop() { - this->close_socket_(); + this->destroy_socket_(); ESP_LOGV(TAG, "Stopped"); } diff --git a/esphome/components/captive_portal/dns_server_esp32_idf.h b/esphome/components/captive_portal/dns_server_esp32_idf.h index 4d7bc958ca..4cff804c4f 100644 --- a/esphome/components/captive_portal/dns_server_esp32_idf.h +++ b/esphome/components/captive_portal/dns_server_esp32_idf.h @@ -14,8 +14,8 @@ class DNSServer { void process_next_request(); protected: - // Listen sockets use LwIPSocketImpl/BSDSocketImpl whose destructors call close() - inline void close_socket_() { + // Socket destructor will close or abort depending on platform + inline void destroy_socket_() { delete this->socket_; this->socket_ = nullptr; } diff --git a/esphome/components/esphome/ota/ota_esphome.cpp b/esphome/components/esphome/ota/ota_esphome.cpp index baca9d17cc..479bf02f69 100644 --- a/esphome/components/esphome/ota/ota_esphome.cpp +++ b/esphome/components/esphome/ota/ota_esphome.cpp @@ -452,7 +452,7 @@ void ESPHomeOTAComponent::log_remote_closed_(const LogString *during) { void ESPHomeOTAComponent::server_failed_(const LogString *msg) { this->log_socket_error_(msg); - // Listen sockets use LwIPSocketImpl/BSDSocketImpl whose destructors call close() + // Socket destructor will close or abort depending on platform delete this->server_; this->server_ = nullptr; this->mark_failed();