From 7b0fa3554c24938ba83e2d1400d619532eff6448 Mon Sep 17 00:00:00 2001 From: LeisureLadi <33247104+LeisureLadi@users.noreply.github.com> Date: Tue, 28 Jan 2020 01:08:30 +0100 Subject: [PATCH] Update LEAmDNS.cpp (fix issue #6982) (#7025) * Update LEAmDNS.cpp (issue #6982) Check m_pUDPContext before calling functions to reset WiFi event callbacks, stop probing ... to close #6982 * Update LEAmDNS.cpp Co-authored-by: Earle F. Philhower, III --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index b76ce56e4..1d8e3e5fb 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -215,18 +215,26 @@ bool MDNSResponder::begin(const char* p_pcHostname, const IPAddress& p_IPAddress */ bool MDNSResponder::close(void) { + bool bResult = false; - m_GotIPHandler.reset(); // reset WiFi event callbacks. - m_DisconnectedHandler.reset(); + if (0 != m_pUDPContext) + { + m_GotIPHandler.reset(); // reset WiFi event callbacks. + m_DisconnectedHandler.reset(); - _announce(false, true); - _resetProbeStatus(false); // Stop probing + _announce(false, true); + _resetProbeStatus(false); // Stop probing + _releaseServiceQueries(); + _releaseUDPContext(); + _releaseHostname(); - _releaseServiceQueries(); - _releaseUDPContext(); - _releaseHostname(); - - return true; + bResult = true; + } + else + { + DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] close: Ignoring call to close!\n"));); + } + return bResult; } /*