Set up mDNS in a more fool-proof way
This commit is contained in:
parent
44dc23051f
commit
de722e001c
@ -47,6 +47,9 @@
|
|||||||
# include <Adafruit_BMP085.h>
|
# include <Adafruit_BMP085.h>
|
||||||
#endif // HAVE_BMP180
|
#endif // HAVE_BMP180
|
||||||
|
|
||||||
|
char *negotiated_hostname = NULL;
|
||||||
|
bool hostname_verified = false;
|
||||||
|
MDNSResponder::hMDNSService mdns_service = NULL;
|
||||||
ESP8266WebServer server(80);
|
ESP8266WebServer server(80);
|
||||||
unsigned long last_update = 0;
|
unsigned long last_update = 0;
|
||||||
|
|
||||||
@ -163,6 +166,42 @@ stop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
set_station_hostname(const char *hostname)
|
||||||
|
{
|
||||||
|
if (hostname) {
|
||||||
|
WiFi.hostname(hostname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
host_probe_result(String hostname, bool result)
|
||||||
|
{
|
||||||
|
if (result == true) {
|
||||||
|
set_station_hostname(negotiated_hostname);
|
||||||
|
|
||||||
|
if (!hostname_verified) {
|
||||||
|
hostname_verified = true;
|
||||||
|
|
||||||
|
if (!mdns_service) {
|
||||||
|
mdns_service = MDNS.addService(0, "http", "tcp", 80);
|
||||||
|
|
||||||
|
if (mdns_service) {
|
||||||
|
MDNS.addServiceTxt(mdns_service, "port#", 80);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (MDNSResponder::indexDomain(negotiated_hostname, "-", 0)) {
|
||||||
|
MDNS.setHostname(negotiated_hostname);
|
||||||
|
} else {
|
||||||
|
Serial.println("Failed to set mDNS hostname");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
setup()
|
setup()
|
||||||
{
|
{
|
||||||
@ -183,8 +222,11 @@ setup()
|
|||||||
address.printTo(Serial);
|
address.printTo(Serial);
|
||||||
Serial.println("");
|
Serial.println("");
|
||||||
|
|
||||||
if (!MDNS.begin(MDNS_NAME)) {
|
MDNS.setHostProbeResultCallback(host_probe_result);
|
||||||
Serial.println("Error setting up mDNS responder!");
|
|
||||||
|
if ((!MDNSResponder::indexDomain(negotiated_hostname, 0, MDNS_NAME)) ||
|
||||||
|
(!MDNS.begin(negotiated_hostname))) {
|
||||||
|
Serial.println("Error setting up mDNS!");
|
||||||
|
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
@ -194,8 +236,6 @@ setup()
|
|||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
MDNS.addService("http", "tcp", 80);
|
|
||||||
|
|
||||||
// Initialize sensors
|
// Initialize sensors
|
||||||
#ifdef DHT_TYPE
|
#ifdef DHT_TYPE
|
||||||
dht.begin();
|
dht.begin();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user