Complete Phase 12 dual-stack networking
Add IPv6-aware Wi-Fi state, HTTPS/SSH listeners, mDNS service reconciliation, and browser Wi-Fi administration. Include a guarded build-local fix for mDNS 1.12.0 membership handling, focused regression suites, and Phase 12 acceptance documentation.
This commit is contained in:
@@ -118,6 +118,28 @@ static void print_ipv4(uint32_t address)
|
||||
printf(IPSTR, IP2STR(&ip));
|
||||
}
|
||||
|
||||
static void print_ipv6_addresses(const wifi_manager_snapshot_t *snapshot)
|
||||
{
|
||||
printf("IPv6 preferred address availability: link-local=%s ULA/GUA=%s\n",
|
||||
snapshot->ipv6_linklocal ? "yes" : "no",
|
||||
snapshot->ipv6_routable ? "yes" : "no");
|
||||
for (uint8_t i = 0; i < snapshot->ipv6_count && i < WIFI_MANAGER_IPV6_MAX_ADDRESSES; ++i) {
|
||||
const wifi_manager_ipv6_address_t *address = &snapshot->ipv6_addresses[i];
|
||||
uint16_t prefix = ESP_IP6_ADDR_BLOCK1(address);
|
||||
const char *kind = (prefix & 0xffc0U) == 0xfe80U ? "link-local" :
|
||||
(prefix & 0xfe00U) == 0xfc00U ? "ULA" :
|
||||
(prefix & 0xe000U) == 0x2000U ? "GUA" : "other";
|
||||
printf("IPv6 preferred %s: " IPV6STR "\n", kind, IPV62STR(*address));
|
||||
}
|
||||
if (snapshot->ipv6_count == 0U) {
|
||||
printf("IPv6 preferred addresses: none\n");
|
||||
}
|
||||
if (snapshot->ipv6_linklocal) {
|
||||
printf("Link-local destinations require a zone (%%interface) naming the client's interface, not the ESP32's.\n");
|
||||
}
|
||||
printf("IPv6 addresses do not establish a default route or Internet reachability.\n");
|
||||
}
|
||||
|
||||
static int show_status(void)
|
||||
{
|
||||
wifi_manager_snapshot_t snapshot;
|
||||
@@ -157,7 +179,10 @@ static int show_status(void)
|
||||
printf(" gateway=");
|
||||
print_ipv4(snapshot.gateway);
|
||||
putchar('\n');
|
||||
} else {
|
||||
printf("IPv4: none\n");
|
||||
}
|
||||
print_ipv6_addresses(&snapshot);
|
||||
|
||||
printf("AP: policy=%s running=%s clients=%u channel=%u SSID=",
|
||||
wifi_config_ap_policy_to_string(snapshot.ap_policy),
|
||||
|
||||
Reference in New Issue
Block a user