From f82c6cf59b34612beb0c0645dc47fd9c62f1fcb1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:41:24 +0000 Subject: [PATCH 1/2] Initial plan From 87b3ec2e3f6398fd1f9d496e2e8d562f29a6f4a0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:48:29 +0000 Subject: [PATCH 2/2] Fix socket IPv6 conditional compilation when LWIP_IPV6 is disabled --- components/socket/include/socket.hpp | 4 ++++ components/socket/src/socket.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/components/socket/include/socket.hpp b/components/socket/include/socket.hpp index 2bcfaafeb..dbf69b9f1 100644 --- a/components/socket/include/socket.hpp +++ b/components/socket/include/socket.hpp @@ -65,12 +65,14 @@ class Socket : public BaseComponent { */ struct sockaddr_in *ipv4_ptr(); +#if !defined(ESP_PLATFORM) || LWIP_IPV6 /** * @brief Gives access to IPv6 sockaddr structure (sockaddr_in6) for use * with low level socket calls like sendto / recvfrom. * @return *sockaddr_in6 pointer to ipv6 data structure */ struct sockaddr_in6 *ipv6_ptr(); +#endif // !defined(ESP_PLATFORM) || LWIP_IPV6 /** * @brief Will update address and port based on the curent data in raw. @@ -89,11 +91,13 @@ class Socket : public BaseComponent { */ void from_sockaddr(const struct sockaddr_in &source_address); +#if !defined(ESP_PLATFORM) || LWIP_IPV6 /** * @brief Fill this Info from the provided sockaddr struct. * @param &source_address sockaddr info filled out by recvfrom. */ void from_sockaddr(const struct sockaddr_in6 &source_address); +#endif // !defined(ESP_PLATFORM) || LWIP_IPV6 }; /** diff --git a/components/socket/src/socket.cpp b/components/socket/src/socket.cpp index fe27686b7..583a8433f 100644 --- a/components/socket/src/socket.cpp +++ b/components/socket/src/socket.cpp @@ -15,15 +15,18 @@ struct sockaddr_in *Socket::Info::ipv4_ptr() { return reinterpret_cast(&raw); } +#if !defined(ESP_PLATFORM) || LWIP_IPV6 struct sockaddr_in6 *Socket::Info::ipv6_ptr() { return reinterpret_cast(&raw); } +#endif // !defined(ESP_PLATFORM) || LWIP_IPV6 void Socket::Info::update() { if (raw.ss_family == PF_INET) { const auto *ipv4 = reinterpret_cast(&raw); address = inet_ntoa(ipv4->sin_addr); port = ntohs(ipv4->sin_port); +#if !defined(ESP_PLATFORM) || LWIP_IPV6 } else if (raw.ss_family == PF_INET6) { const auto *ipv6 = reinterpret_cast(&raw); #if defined(ESP_PLATFORM) @@ -34,6 +37,7 @@ void Socket::Info::update() { address = str; #endif port = ntohs(ipv6->sin6_port); +#endif // !defined(ESP_PLATFORM) || LWIP_IPV6 } } @@ -48,6 +52,7 @@ void Socket::Info::from_sockaddr(const struct sockaddr_in &source_address) { port = ntohs(source_address.sin_port); } +#if !defined(ESP_PLATFORM) || LWIP_IPV6 void Socket::Info::from_sockaddr(const struct sockaddr_in6 &source_address) { #if defined(ESP_PLATFORM) address = inet_ntoa(source_address.sin6_addr); @@ -59,6 +64,7 @@ void Socket::Info::from_sockaddr(const struct sockaddr_in6 &source_address) { port = ntohs(source_address.sin6_port); memcpy(&raw, &source_address, sizeof(source_address)); } +#endif // !defined(ESP_PLATFORM) || LWIP_IPV6 [[maybe_unused]] static bool _socket_initialized = false; Socket::Socket(sock_type_t socket_fd, const Logger::Config &logger_config)