1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 00:31:58 +00:00

compile tmie safety at higheer level

This commit is contained in:
J. Nick Koston
2026-01-26 08:44:06 -10:00
parent dcab12adae
commit d602a2e5e4
3 changed files with 7 additions and 5 deletions

View File

@@ -282,7 +282,9 @@ class APIConnection final : public APIServerConnection {
const char *get_name() const { return this->helper_->get_client_name(); }
/// Get peer name (IP address) into caller-provided buffer, returns buf for convenience
const char *get_peername_to(char *buf) const { return this->helper_->get_peername_to(buf); }
const char *get_peername_to(std::span<char, socket::SOCKADDR_STR_LEN> buf) const {
return this->helper_->get_peername_to(buf);
}
protected:
// Helper function to handle authentication completion

View File

@@ -245,13 +245,13 @@ APIError APIFrameHelper::try_send_tx_buf_() {
return APIError::OK; // All buffers sent successfully
}
const char *APIFrameHelper::get_peername_to(char *buf) const {
const char *APIFrameHelper::get_peername_to(std::span<char, socket::SOCKADDR_STR_LEN> buf) const {
if (this->socket_) {
this->socket_->getpeername_to(std::span<char, socket::SOCKADDR_STR_LEN>(buf, socket::SOCKADDR_STR_LEN));
this->socket_->getpeername_to(buf);
} else {
buf[0] = '\0';
}
return buf;
return buf.data();
}
APIError APIFrameHelper::init_common_() {

View File

@@ -92,7 +92,7 @@ class APIFrameHelper {
const char *get_client_name() const { return this->client_name_; }
// Get client peername/IP into caller-provided buffer (fetches on-demand from socket)
// Returns pointer to buf for convenience in printf-style calls
const char *get_peername_to(char *buf) const;
const char *get_peername_to(std::span<char, socket::SOCKADDR_STR_LEN> buf) const;
// Set client name from buffer with length (truncates if needed)
void set_client_name(const char *name, size_t len) {
size_t copy_len = std::min(len, sizeof(this->client_name_) - 1);