From b1795fec4ded404fdf3aef0fc35497a9e2c75b5c Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 17 Sep 2024 10:21:22 +0200 Subject: [PATCH] add Michael's IPv6 check --- lib/framework/NetworkSettingsService.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/framework/NetworkSettingsService.cpp b/lib/framework/NetworkSettingsService.cpp index 17cbc5081..b9d63a1aa 100644 --- a/lib/framework/NetworkSettingsService.cpp +++ b/lib/framework/NetworkSettingsService.cpp @@ -377,14 +377,21 @@ void NetworkSettingsService::WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) break; // IPv6 specific - Eth - case ARDUINO_EVENT_ETH_GOT_IP6: + case ARDUINO_EVENT_ETH_GOT_IP6: { #if !TASMOTA_SDK && ESP_IDF_VERSION_MAJOR < 5 - emsesp::EMSESP::logger().info("Local IPv6 (Eth)=%s", ETH.localIPv6().toString().c_str()); + auto ip6 = IPv6Address((uint8_t *)info.got_ip6.ip6_info.ip.addr).toString(); #else - emsesp::EMSESP::logger().info("IPv6 (Eth)=%s", IPAddress(IPv6, (uint8_t *)info.got_ip6.ip6_info.ip.addr, 0).toString().c_str()); + auto ip6 = IPAddress(IPv6, (uint8_t *)info.got_ip6.ip6_info.ip.addr, 0).toString(); #endif + if (ip6.startsWith("fe80")) { + emsesp::EMSESP::logger().info("IPv6 local: %s", ip6.c_str()); + } else if (ip6.startsWith("fd")) { + emsesp::EMSESP::logger().info("IPv6 ULA: %s", ip6.c_str()); + } else { + emsesp::EMSESP::logger().info("IPv6 global: %s", ip6.c_str()); + } emsesp::EMSESP::system_.has_ipv6(true); - break; + } break; default: break;