From f1ec9c5c7541d8fbc287e1ec0bbd77f571e82e39 Mon Sep 17 00:00:00 2001 From: Mykola Baibuz Date: Wed, 27 Aug 2025 13:33:49 +0300 Subject: [PATCH] use stop method for protocol disconnecect --- client/amnezia_application.cpp | 3 ++- client/vpnconnection.cpp | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index 0509e43b1..5855b87de 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -52,8 +52,9 @@ AmneziaApplication::AmneziaApplication(int &argc, char *argv[]) : AMNEZIA_BASE_C AmneziaApplication::~AmneziaApplication() { if (m_vpnConnection) { - QMetaObject::invokeMethod(m_vpnConnection.get(), "disconnectSlots", Qt::QueuedConnection); QMetaObject::invokeMethod(m_vpnConnection.get(), "disconnectFromVpn", Qt::QueuedConnection); + QThread::msleep(2000); + QMetaObject::invokeMethod(m_vpnConnection.get(), "disconnectSlots", Qt::QueuedConnection); } m_vpnConnectionThread.requestInterruption(); diff --git a/client/vpnconnection.cpp b/client/vpnconnection.cpp index 9122fbb60..036d767ea 100644 --- a/client/vpnconnection.cpp +++ b/client/vpnconnection.cpp @@ -445,10 +445,7 @@ void VpnConnection::disconnectFromVpn() #ifdef AMNEZIA_DESKTOP if (InterfaceReady()) { - if (m_vpnProtocol) { - m_vpnProtocol->deleteLater(); - } - + m_vpnProtocol.data()->stop(); qDebug() << "Interface is ready!"; QRemoteObjectPendingReply flushDnsResp = IpcClient::Interface()->flushDns();