diff --git a/client/protocols/openvpnovercloakprotocol.cpp b/client/protocols/openvpnovercloakprotocol.cpp index 2eb295c7..8edcb53f 100644 --- a/client/protocols/openvpnovercloakprotocol.cpp +++ b/client/protocols/openvpnovercloakprotocol.cpp @@ -57,7 +57,7 @@ ErrorCode OpenVpnOverCloakProtocol::start() qDebug().noquote() << "ck-client:" << m_ckProcess.readAllStandardOutput(); }); - connect(&m_ckProcess, QOverload::of(&QProcess::finished), this, [this](int exitCode, QProcess::ExitStatus exitStatus){ + m_errorHandlerConnection = connect(&m_ckProcess, QOverload::of(&QProcess::finished), this, [this](int exitCode, QProcess::ExitStatus exitStatus){ qDebug().noquote() << "OpenVpnOverCloakProtocol finished, exitCode, exiStatus" << exitCode << exitStatus; setConnectionState(VpnProtocol::ConnectionState::Disconnected); if (exitStatus != QProcess::NormalExit){ @@ -83,6 +83,7 @@ ErrorCode OpenVpnOverCloakProtocol::start() void OpenVpnOverCloakProtocol::stop() { + disconnect(m_errorHandlerConnection); OpenVpnProtocol::stop(); qDebug() << "OpenVpnOverCloakProtocol::stop()"; diff --git a/client/protocols/openvpnovercloakprotocol.h b/client/protocols/openvpnovercloakprotocol.h index 9244d6ff..69aae8c6 100644 --- a/client/protocols/openvpnovercloakprotocol.h +++ b/client/protocols/openvpnovercloakprotocol.h @@ -25,6 +25,7 @@ private: private: QProcess m_ckProcess; QTemporaryFile m_cloakCfgFile; + QMetaObject::Connection m_errorHandlerConnection; }; #endif // OPENVPNOVERCLOAKPROTOCOL_H