1 Commits

Author SHA1 Message Date
Roman Andriadi
ed7d904105 Merge 62446a9a30 into 80b91d9a01 2025-02-09 12:44:37 +00:00
2 changed files with 7 additions and 12 deletions

View File

@@ -84,7 +84,7 @@ board_build.ldscript = eagle.flash.4m1m.ld
;platform_packages =
; framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.5
; framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.1/esp32-arduino-libs-idf-release_v5.1-33fbade6.zip
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.12/platform-espressif32.zip
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
platform_packages =
board_build.partitions = esp32_partitions.csv
lib_deps =

View File

@@ -1,12 +1,10 @@
//#define PORTAL_CACHE "max-age=86400"
#define PORTAL_CACHE nullptr
#ifdef ARDUINO_ARCH_ESP8266
#include <ESP8266mDNS.h>
#include <ESP8266WebServer.h>
#include <Updater.h>
using WebServer = ESP8266WebServer;
#else
#include <ESPmDNS.h>
#include <WebServer.h>
#include <Update.h>
#endif
@@ -56,6 +54,7 @@ protected:
bool webServerEnabled = false;
bool dnsServerEnabled = false;
unsigned long webServerChangeState = 0;
unsigned long dnsServerChangeState = 0;
#if defined(ARDUINO_ARCH_ESP32)
const char* getTaskName() override {
@@ -921,10 +920,6 @@ protected:
this->startWebServer();
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Started: AP up or STA connected"));
if (MDNS.begin(networkSettings.hostname)) {
MDNS.addService("http", "tcp", 80);
}
#ifdef ARDUINO_ARCH_ESP8266
::optimistic_yield(1000);
#endif
@@ -933,15 +928,13 @@ protected:
this->stopWebServer();
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Stopped: AP and STA down"));
MDNS.end();
#ifdef ARDUINO_ARCH_ESP8266
::optimistic_yield(1000);
#endif
}
// dns server
if (!this->stateDnsServer() && !network->isConnected() && network->isApEnabled() && this->stateWebServer()) {
if (!this->stateDnsServer() && this->stateWebServer() && network->isApEnabled() && network->hasApClients() && millis() - this->dnsServerChangeState >= this->changeStateInterval) {
this->startDnsServer();
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Started: AP up"));
@@ -949,9 +942,9 @@ protected:
::optimistic_yield(1000);
#endif
} else if (this->stateDnsServer() && (network->isConnected() || !network->isApEnabled() || !this->stateWebServer())) {
} else if (this->stateDnsServer() && (!network->isApEnabled() || !this->stateWebServer())) {
this->stopDnsServer();
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Stopped: AP down/STA connected"));
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Stopped: AP down"));
#ifdef ARDUINO_ARCH_ESP8266
::optimistic_yield(1000);
@@ -1061,6 +1054,7 @@ protected:
this->dnsServer->start(53, "*", network->getApIp());
this->dnsServerEnabled = true;
this->dnsServerChangeState = millis();
}
void stopDnsServer() {
@@ -1071,5 +1065,6 @@ protected:
//this->dnsServer->processNextRequest();
this->dnsServer->stop();
this->dnsServerEnabled = false;
this->dnsServerChangeState = millis();
}
};