From d159d08d90c1710fae1027d90f3ca28d1ebd2ab1 Mon Sep 17 00:00:00 2001 From: LeisureLadi <33247104+LeisureLadi@users.noreply.github.com> Date: Mon, 20 Jan 2020 19:45:09 +0100 Subject: [PATCH 1/2] Update LEAmDNS.cpp (issue #6982) Check m_pUDPContext before calling functions to reset WiFi event callbacks, stop probing ... to close #6982 --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index b76ce56e4f..2ba36a3f0f 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -215,18 +215,28 @@ 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) + { - _announce(false, true); - _resetProbeStatus(false); // Stop probing + m_GotIPHandler.reset(); // reset WiFi event callbacks. + m_DisconnectedHandler.reset(); - _releaseServiceQueries(); - _releaseUDPContext(); - _releaseHostname(); + _announce(false, true); + _resetProbeStatus(false); // Stop probing - return true; + _releaseServiceQueries(); + _releaseUDPContext(); + _releaseHostname(); + + bResult = true; + } + else + { + DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] close: Ignoring call to close!\n"));); + } + return bResult; } /* From 7cccf6e053757f5518a5cdfbf1159e5f3ff19d8e Mon Sep 17 00:00:00 2001 From: LeisureLadi <33247104+LeisureLadi@users.noreply.github.com> Date: Tue, 21 Jan 2020 21:54:49 +0100 Subject: [PATCH 2/2] Update LEAmDNS.cpp --- libraries/ESP8266mDNS/src/LEAmDNS.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/libraries/ESP8266mDNS/src/LEAmDNS.cpp b/libraries/ESP8266mDNS/src/LEAmDNS.cpp index 2ba36a3f0f..1d8e3e5fb7 100644 --- a/libraries/ESP8266mDNS/src/LEAmDNS.cpp +++ b/libraries/ESP8266mDNS/src/LEAmDNS.cpp @@ -219,24 +219,22 @@ bool MDNSResponder::close(void) if (0 != m_pUDPContext) { + m_GotIPHandler.reset(); // reset WiFi event callbacks. + m_DisconnectedHandler.reset(); - m_GotIPHandler.reset(); // reset WiFi event callbacks. - m_DisconnectedHandler.reset(); + _announce(false, true); + _resetProbeStatus(false); // Stop probing + _releaseServiceQueries(); + _releaseUDPContext(); + _releaseHostname(); - _announce(false, true); - _resetProbeStatus(false); // Stop probing - - _releaseServiceQueries(); - _releaseUDPContext(); - _releaseHostname(); - - bResult = true; + bResult = true; } else { DEBUG_EX_INFO(DEBUG_OUTPUT.printf_P(PSTR("[MDNSResponder] close: Ignoring call to close!\n"));); } - return bResult; + return bResult; } /*