mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 18:54:28 +05:00
feat: added mDNS
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
//#define PORTAL_CACHE "max-age=86400"
|
//#define PORTAL_CACHE "max-age=86400"
|
||||||
#define PORTAL_CACHE nullptr
|
#define PORTAL_CACHE nullptr
|
||||||
#ifdef ARDUINO_ARCH_ESP8266
|
#ifdef ARDUINO_ARCH_ESP8266
|
||||||
|
#include <ESP8266mDNS.h>
|
||||||
#include <ESP8266WebServer.h>
|
#include <ESP8266WebServer.h>
|
||||||
#include <Updater.h>
|
#include <Updater.h>
|
||||||
using WebServer = ESP8266WebServer;
|
using WebServer = ESP8266WebServer;
|
||||||
#else
|
#else
|
||||||
|
#include <ESPmDNS.h>
|
||||||
#include <WebServer.h>
|
#include <WebServer.h>
|
||||||
#include <Update.h>
|
#include <Update.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -53,7 +55,6 @@ protected:
|
|||||||
bool webServerEnabled = false;
|
bool webServerEnabled = false;
|
||||||
bool dnsServerEnabled = false;
|
bool dnsServerEnabled = false;
|
||||||
unsigned long webServerChangeState = 0;
|
unsigned long webServerChangeState = 0;
|
||||||
unsigned long dnsServerChangeState = 0;
|
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
const char* getTaskName() override {
|
const char* getTaskName() override {
|
||||||
@@ -872,6 +873,10 @@ protected:
|
|||||||
this->startWebServer();
|
this->startWebServer();
|
||||||
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Started: AP up or STA connected"));
|
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
|
#ifdef ARDUINO_ARCH_ESP8266
|
||||||
::optimistic_yield(1000);
|
::optimistic_yield(1000);
|
||||||
#endif
|
#endif
|
||||||
@@ -880,13 +885,15 @@ protected:
|
|||||||
this->stopWebServer();
|
this->stopWebServer();
|
||||||
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Stopped: AP and STA down"));
|
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Stopped: AP and STA down"));
|
||||||
|
|
||||||
|
MDNS.end();
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_ESP8266
|
#ifdef ARDUINO_ARCH_ESP8266
|
||||||
::optimistic_yield(1000);
|
::optimistic_yield(1000);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// dns server
|
// dns server
|
||||||
if (!this->stateDnsServer() && this->stateWebServer() && network->isApEnabled() && network->hasApClients() && millis() - this->dnsServerChangeState >= this->changeStateInterval) {
|
if (!this->stateDnsServer() && !network->isConnected() && network->isApEnabled() && this->stateWebServer()) {
|
||||||
this->startDnsServer();
|
this->startDnsServer();
|
||||||
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Started: AP up"));
|
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Started: AP up"));
|
||||||
|
|
||||||
@@ -894,9 +901,9 @@ protected:
|
|||||||
::optimistic_yield(1000);
|
::optimistic_yield(1000);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else if (this->stateDnsServer() && (!network->isApEnabled() || !this->stateWebServer())) {
|
} else if (this->stateDnsServer() && (network->isConnected() || !network->isApEnabled() || !this->stateWebServer())) {
|
||||||
this->stopDnsServer();
|
this->stopDnsServer();
|
||||||
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Stopped: AP down"));
|
Log.straceln(FPSTR(L_PORTAL_DNSSERVER), F("Stopped: AP down/STA connected"));
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_ESP8266
|
#ifdef ARDUINO_ARCH_ESP8266
|
||||||
::optimistic_yield(1000);
|
::optimistic_yield(1000);
|
||||||
@@ -1006,7 +1013,6 @@ protected:
|
|||||||
|
|
||||||
this->dnsServer->start(53, "*", network->getApIp());
|
this->dnsServer->start(53, "*", network->getApIp());
|
||||||
this->dnsServerEnabled = true;
|
this->dnsServerEnabled = true;
|
||||||
this->dnsServerChangeState = millis();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void stopDnsServer() {
|
void stopDnsServer() {
|
||||||
@@ -1017,6 +1023,5 @@ protected:
|
|||||||
//this->dnsServer->processNextRequest();
|
//this->dnsServer->processNextRequest();
|
||||||
this->dnsServer->stop();
|
this->dnsServer->stop();
|
||||||
this->dnsServerEnabled = false;
|
this->dnsServerEnabled = false;
|
||||||
this->dnsServerChangeState = millis();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user