From 0f75fa4a583bd0107399675dccf36798afc3ca5e Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Tue, 21 Feb 2023 13:40:55 +0100 Subject: [PATCH] Fixed redirect issue after initial setup with DHCP on ESP8266 --- lib/SvelteUi/app/src/lib/SetupPanel.svelte | 2 +- lib/SvelteUi/app/src/lib/StatusPage.svelte | 2 +- lib/SvelteUi/src/AmsWebServer.cpp | 16 +++++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/SvelteUi/app/src/lib/SetupPanel.svelte b/lib/SvelteUi/app/src/lib/SetupPanel.svelte index 037d31cf..2dededde 100644 --- a/lib/SvelteUi/app/src/lib/SetupPanel.svelte +++ b/lib/SvelteUi/app/src/lib/SetupPanel.svelte @@ -18,7 +18,7 @@ }; if(sysinfo.net.ip && tries%3 == 0) { - if(sysinfo.net.ip == '0.0.0.0') { + if(!sysinfo.net.ip) { retry(); return; }; diff --git a/lib/SvelteUi/app/src/lib/StatusPage.svelte b/lib/SvelteUi/app/src/lib/StatusPage.svelte index e9346920..b94a716d 100644 --- a/lib/SvelteUi/app/src/lib/StatusPage.svelte +++ b/lib/SvelteUi/app/src/lib/StatusPage.svelte @@ -137,7 +137,7 @@ Gateway: {sysinfo.net.gw}
- DNS: {sysinfo.net.dns1} {#if sysinfo.net.dns2 && sysinfo.net.dns2 != '0.0.0.0'}/ {sysinfo.net.dns2}{/if} + DNS: {sysinfo.net.dns1} {#if sysinfo.net.dns2}/ {sysinfo.net.dns2}{/if}
{/if} diff --git a/lib/SvelteUi/src/AmsWebServer.cpp b/lib/SvelteUi/src/AmsWebServer.cpp index e3637859..097336a0 100644 --- a/lib/SvelteUi/src/AmsWebServer.cpp +++ b/lib/SvelteUi/src/AmsWebServer.cpp @@ -217,6 +217,9 @@ void AmsWebServer::sysinfoJson() { hostname = "ams-"+chipIdStr; } + IPAddress localIp = WiFi.localIP(); + IPAddress subnet = WiFi.subnetMask(); + IPAddress gateway = WiFi.gatewayIP(); IPAddress dns1 = WiFi.dnsIP(0); IPAddress dns2 = WiFi.dnsIP(1); @@ -271,15 +274,18 @@ void AmsWebServer::sysinfoJson() { hostname.c_str(), performRestart ? "true" : "false", rebootForUpgrade ? "true" : "false", - WiFi.localIP().toString().c_str(), - WiFi.subnetMask().toString().c_str(), - WiFi.gatewayIP().toString().c_str(), #if defined(ESP8266) + localIp.isSet() ? localIp.toString().c_str() : "", + subnet.isSet() ? subnet.toString().c_str() : "", + gateway.isSet() ? gateway.toString().c_str() : "", dns1.isSet() ? dns1.toString().c_str() : "", dns2.isSet() ? dns2.toString().c_str() : "", #else - dns1.toString().c_str(), - dns2.toString().c_str(), + localIp != INADDR_NONE ? localIp.toString().c_str() : "", + subnet != INADDR_NONE ? subnet.toString().c_str() : "", + gateway != INADDR_NONE ? gateway.toString().c_str() : "", + dns1 != INADDR_NONE ? dns1.toString().c_str() : "", + dns2 != INADDR_NONE ? dns2.toString().c_str() : "", #endif meterState->getMeterType(), meterModel.c_str(),