From 6d54bb148110c9cc5f9a3392052208260a63e8f3 Mon Sep 17 00:00:00 2001 From: LaborEtArs <laboretars@googlemail.ocm> Date: Mon, 28 Jan 2019 20:58:17 +0100 Subject: [PATCH 1/3] LEAmDNS_Fixes_1_3 --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index 43e1a802d9..dbeb33503d 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -89,7 +89,7 @@ bool MDNSResponder::begin(const char* p_pcHostname) { bool bResult = (0 != m_pcHostname); - if (0 == m_pcHostname) { + if (0 == m_pUDPContext) { if (_setHostname(p_pcHostname)) { m_GotIPHandler = WiFi.onStationModeGotIP([this](const WiFiEventStationModeGotIP& pEvent) { From 6ac7a2c31df89ef6e17c28283a0ba9e1e61061aa Mon Sep 17 00:00:00 2001 From: LaborEtArs <laboretars@googlemail.ocm> Date: Tue, 29 Jan 2019 19:43:34 +0100 Subject: [PATCH 2/3] LEAmDNS_Fixes_1_3 --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index dbeb33503d..4ebb186e4a 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -22,8 +22,11 @@ * */ +#include <Schedule.h> + #include "LEAmDNS_Priv.h" + namespace esp8266 { /* @@ -87,28 +90,30 @@ MDNSResponder::~MDNSResponder(void) { */ bool MDNSResponder::begin(const char* p_pcHostname) { - bool bResult = (0 != m_pcHostname); + bool bResult = false; if (0 == m_pUDPContext) { if (_setHostname(p_pcHostname)) { m_GotIPHandler = WiFi.onStationModeGotIP([this](const WiFiEventStationModeGotIP& pEvent) { (void) pEvent; - _restart(); + // Ensure that _restart() runs in USER context + schedule_function(std::bind(&MDNSResponder::_restart, this)); }); m_DisconnectedHandler = WiFi.onStationModeDisconnected([this](const WiFiEventStationModeDisconnected& pEvent) { (void) pEvent; - _restart(); + // Ensure that _restart() runs in USER context + schedule_function(std::bind(&MDNSResponder::_restart, this)); }); bResult = _restart(); } + DEBUG_EX_ERR(if (!bResult) { DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: FAILED for '%s'!\n"), (p_pcHostname ?: "-")); } ); } else { DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: Ignoring multiple calls (Ignored host domain: '%s')!\n"), (p_pcHostname ?: "-"));); } - DEBUG_EX_ERR(if (!bResult) { DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: FAILED for '%s'!\n"), (p_pcHostname ?: "-")); } ); return bResult; } From b75355254a39812b0356fad1e68e9aa38e00405c Mon Sep 17 00:00:00 2001 From: LaborEtArs <laboretars@googlemail.ocm> Date: Tue, 29 Jan 2019 20:50:04 +0100 Subject: [PATCH 3/3] Updated LEAmDNSResponder::begin() :x --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index 4ebb186e4a..581e7180a4 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -112,7 +112,7 @@ bool MDNSResponder::begin(const char* p_pcHostname) { DEBUG_EX_ERR(if (!bResult) { DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: FAILED for '%s'!\n"), (p_pcHostname ?: "-")); } ); } else { - DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: Ignoring multiple calls (Ignored host domain: '%s')!\n"), (p_pcHostname ?: "-"));); + DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] begin: Ignoring multiple calls to begin (Ignored host domain: '%s')!\n"), (p_pcHostname ?: "-"));); } return bResult; }