From 4135f9ab9badbfafbbb573fa0f3a865c9421b9a9 Mon Sep 17 00:00:00 2001 From: PobreGato <315121269+pobregat0@users.noreply.github.com> Date: Wed, 19 Aug 2026 04:21:20 +0300 Subject: [PATCH] stop the web console and I2PControl before what they read --- daemon/Daemon.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/daemon/Daemon.cpp b/daemon/Daemon.cpp index 35bf259a..04888d56 100644 --- a/daemon/Daemon.cpp +++ b/daemon/Daemon.cpp @@ -579,6 +579,19 @@ namespace util bool Daemon_Singleton::stop() { LogPrint(eLogInfo, "Daemon: Shutting down"); + // these two serve pages from their own threads, they must go before + // anything they read is taken apart + if (d.httpServer) { + LogPrint(eLogInfo, "Daemon: Stopping HTTP Server"); + d.httpServer->Stop(); + d.httpServer = nullptr; + } + if (d.m_I2PControlService) + { + LogPrint(eLogInfo, "Daemon: Stopping I2PControl"); + d.m_I2PControlService->Stop (); + d.m_I2PControlService = nullptr; + } LogPrint(eLogInfo, "Daemon: Stopping Client"); i2p::client::context.Stop(); LogPrint(eLogInfo, "Daemon: Stopping Router context"); @@ -602,17 +615,6 @@ namespace util i2p::transport::transports.Stop(); LogPrint(eLogInfo, "Daemon: Stopping NetDB"); i2p::data::netdb.Stop(); - if (d.httpServer) { - LogPrint(eLogInfo, "Daemon: Stopping HTTP Server"); - d.httpServer->Stop(); - d.httpServer = nullptr; - } - if (d.m_I2PControlService) - { - LogPrint(eLogInfo, "Daemon: Stopping I2PControl"); - d.m_I2PControlService->Stop (); - d.m_I2PControlService = nullptr; - } i2p::crypto::TerminateCrypto (); i2p::log::Logger().Stop();