Fix compatibility with ESPHome 2026.1

The getpeername() function has been removed and replaced with
getpeername_to(), which writes into a caller-owned span instead.
This commit is contained in:
tastopesato
2026-01-21 19:35:19 +01:00
committed by Oxan van Leeuwen
parent b7b03afe8d
commit 7546679e35

View File

@@ -80,7 +80,15 @@ void StreamServerComponent::accept() {
return;
socket->setblocking(false);
#if ESPHOME_VERSION_CODE >= VERSION_CODE(2026, 1, 0)
std::string identifier = std::string{esphome::socket::SOCKADDR_STR_LEN, 0};
auto identifier_span = std::span<char, esphome::socket::SOCKADDR_STR_LEN>(identifier.data(), identifier.size());
identifier.resize(socket->getpeername_to(identifier_span));
#else
std::string identifier = socket->getpeername();
#endif
this->clients_.emplace_back(std::move(socket), identifier, this->buf_head_);
ESP_LOGD(TAG, "New client connected from %s", identifier.c_str());
this->publish_sensor();