Fix leaked resource handles (partial PR2060)
This commit is contained in:
+1
-1
Submodule open-x4-sdk updated: 5f4a46ea3a...4d4c66787f
@@ -55,6 +55,9 @@ void CalibreConnectActivity::onEnter() {
|
|||||||
void CalibreConnectActivity::onExit() {
|
void CalibreConnectActivity::onExit() {
|
||||||
Activity::onExit();
|
Activity::onExit();
|
||||||
|
|
||||||
|
stopWebServer();
|
||||||
|
MDNS.end();
|
||||||
|
|
||||||
if (WiFi.getMode() != WIFI_MODE_NULL) {
|
if (WiFi.getMode() != WIFI_MODE_NULL) {
|
||||||
WiFi.disconnect(false);
|
WiFi.disconnect(false);
|
||||||
delay(30);
|
delay(30);
|
||||||
|
|||||||
@@ -32,6 +32,15 @@ constexpr int QR_CODE_HEIGHT = 198;
|
|||||||
// DNS server for captive portal (redirects all DNS queries to our IP)
|
// DNS server for captive portal (redirects all DNS queries to our IP)
|
||||||
DNSServer* dnsServer = nullptr;
|
DNSServer* dnsServer = nullptr;
|
||||||
constexpr uint16_t DNS_PORT = 53;
|
constexpr uint16_t DNS_PORT = 53;
|
||||||
|
|
||||||
|
void stopDnsServer() {
|
||||||
|
if (!dnsServer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dnsServer->stop();
|
||||||
|
delete dnsServer;
|
||||||
|
dnsServer = nullptr;
|
||||||
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
void CrossPointWebServerActivity::onEnter() {
|
void CrossPointWebServerActivity::onEnter() {
|
||||||
@@ -65,6 +74,8 @@ void CrossPointWebServerActivity::onExit() {
|
|||||||
Activity::onExit();
|
Activity::onExit();
|
||||||
|
|
||||||
state = WebServerActivityState::SHUTTING_DOWN;
|
state = WebServerActivityState::SHUTTING_DOWN;
|
||||||
|
stopDnsServer();
|
||||||
|
MDNS.end();
|
||||||
|
|
||||||
// Skip reboot if WiFi was never activated (e.g. user backed out of mode selection).
|
// Skip reboot if WiFi was never activated (e.g. user backed out of mode selection).
|
||||||
if (WiFi.getMode() != WIFI_MODE_NULL) {
|
if (WiFi.getMode() != WIFI_MODE_NULL) {
|
||||||
@@ -205,6 +216,7 @@ void CrossPointWebServerActivity::startAccessPoint() {
|
|||||||
|
|
||||||
// Start DNS server for captive portal behavior
|
// Start DNS server for captive portal behavior
|
||||||
// This redirects all DNS queries to our IP, making any domain typed resolve to us
|
// This redirects all DNS queries to our IP, making any domain typed resolve to us
|
||||||
|
stopDnsServer();
|
||||||
dnsServer = new DNSServer();
|
dnsServer = new DNSServer();
|
||||||
dnsServer->setErrorReplyCode(DNSReplyCode::NoError);
|
dnsServer->setErrorReplyCode(DNSReplyCode::NoError);
|
||||||
dnsServer->start(DNS_PORT, "*", apIP);
|
dnsServer->start(DNS_PORT, "*", apIP);
|
||||||
|
|||||||
Reference in New Issue
Block a user