Merge pull request #241 from amnezia-vpn/bugfix/cloak_for_desktops_fix
Fixes for Cloak proto
This commit is contained in:
commit
f722576bf2
3 changed files with 16 additions and 22 deletions
|
@ -42,11 +42,8 @@ QString CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
|
||||||
config.insert("NumConn", 4);
|
config.insert("NumConn", 4);
|
||||||
config.insert("BrowserSig", "chrome");
|
config.insert("BrowserSig", "chrome");
|
||||||
config.insert("StreamTimeout", 300);
|
config.insert("StreamTimeout", 300);
|
||||||
|
config.insert("RemoteHost", credentials.hostName);
|
||||||
// transfer params to protocol runner
|
config.insert("RemotePort", "$CLOAK_SERVER_PORT");
|
||||||
config.insert(config_key::transport_proto, "tcp");
|
|
||||||
config.insert(config_key::remote, credentials.hostName);
|
|
||||||
config.insert(config_key::port, "$CLOAK_SERVER_PORT");
|
|
||||||
|
|
||||||
QString textCfg = serverController.replaceVars(QJsonDocument(config).toJson(),
|
QString textCfg = serverController.replaceVars(QJsonDocument(config).toJson(),
|
||||||
serverController.genVarsForScript(credentials, container, containerConfig));
|
serverController.genVarsForScript(credentials, container, containerConfig));
|
||||||
|
|
|
@ -18,10 +18,7 @@ OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol()
|
||||||
{
|
{
|
||||||
qDebug() << "OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol";
|
qDebug() << "OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol";
|
||||||
OpenVpnOverCloakProtocol::stop();
|
OpenVpnOverCloakProtocol::stop();
|
||||||
QThread::msleep(200);
|
|
||||||
#ifndef Q_OS_IOS
|
|
||||||
m_ckProcess.close();
|
m_ckProcess.close();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorCode OpenVpnOverCloakProtocol::start()
|
ErrorCode OpenVpnOverCloakProtocol::start()
|
||||||
|
@ -30,11 +27,17 @@ ErrorCode OpenVpnOverCloakProtocol::start()
|
||||||
setLastError(ErrorCode::CloakExecutableMissing);
|
setLastError(ErrorCode::CloakExecutableMissing);
|
||||||
return lastError();
|
return lastError();
|
||||||
}
|
}
|
||||||
#ifndef Q_OS_IOS
|
|
||||||
if (Utils::processIsRunning(Utils::executable("ck-client", false))) {
|
if (Utils::processIsRunning(Utils::executable("ck-client", false))) {
|
||||||
Utils::killProcessByName(Utils::executable("ck-client", false));
|
Utils::killProcessByName(Utils::executable("ck-client", false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// workaround for desktop releases >= 3.0.7
|
||||||
|
if (!m_cloakConfig.contains("RemoteHost") && m_cloakConfig.contains(config_key::remote)) {
|
||||||
|
m_cloakConfig["RemoteHost"] = m_cloakConfig.value(config_key::remote);
|
||||||
|
m_cloakConfig["RemotePort"] = m_cloakConfig.value(config_key::port);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef QT_DEBUG
|
#ifdef QT_DEBUG
|
||||||
m_cloakCfgFile.setAutoRemove(false);
|
m_cloakCfgFile.setAutoRemove(false);
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,15 +46,8 @@ ErrorCode OpenVpnOverCloakProtocol::start()
|
||||||
m_cloakCfgFile.close();
|
m_cloakCfgFile.close();
|
||||||
|
|
||||||
QStringList args = QStringList() << "-c" << m_cloakCfgFile.fileName()
|
QStringList args = QStringList() << "-c" << m_cloakCfgFile.fileName()
|
||||||
<< "-s" << m_cloakConfig.value(config_key::remote).toString()
|
|
||||||
<< "-p" << m_cloakConfig.value(config_key::port).toString(amnezia::protocols::cloak::defaultPort)
|
|
||||||
<< "-l" << amnezia::protocols::openvpn::defaultPort;
|
<< "-l" << amnezia::protocols::openvpn::defaultPort;
|
||||||
|
|
||||||
ProtocolEnumNS::TransportProto tp = ProtocolProps::transportProtoFromString(m_cloakConfig.value(config_key::transport_proto).toString());
|
|
||||||
if (tp == ProtocolEnumNS::TransportProto::Udp) {
|
|
||||||
args << "-u";
|
|
||||||
}
|
|
||||||
|
|
||||||
qDebug().noquote() << "OpenVpnOverCloakProtocol::start()"
|
qDebug().noquote() << "OpenVpnOverCloakProtocol::start()"
|
||||||
<< cloakExecPath() << args.join(" ");
|
<< cloakExecPath() << args.join(" ");
|
||||||
|
|
||||||
|
@ -86,7 +82,6 @@ ErrorCode OpenVpnOverCloakProtocol::start()
|
||||||
return OpenVpnProtocol::start();
|
return OpenVpnProtocol::start();
|
||||||
}
|
}
|
||||||
else return ErrorCode::CloakExecutableMissing;
|
else return ErrorCode::CloakExecutableMissing;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenVpnOverCloakProtocol::stop()
|
void OpenVpnOverCloakProtocol::stop()
|
||||||
|
@ -100,9 +95,12 @@ void OpenVpnOverCloakProtocol::stop()
|
||||||
Utils::signalCtrl(m_ckProcess.processId(), CTRL_C_EVENT);
|
Utils::signalCtrl(m_ckProcess.processId(), CTRL_C_EVENT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef Q_OS_IOS
|
|
||||||
m_ckProcess.terminate();
|
m_ckProcess.terminate();
|
||||||
#endif
|
|
||||||
|
if (Utils::processIsRunning(Utils::executable("ck-client", false))) {
|
||||||
|
QThread::msleep(1000);
|
||||||
|
Utils::killProcessByName(Utils::executable("ck-client", false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenVpnOverCloakProtocol::cloakExecPath()
|
QString OpenVpnOverCloakProtocol::cloakExecPath()
|
||||||
|
|
|
@ -83,7 +83,7 @@ bool Utils::processIsRunning(const QString& fileName)
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.setReadChannel(QProcess::StandardOutput);
|
process.setReadChannel(QProcess::StandardOutput);
|
||||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
process.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
process.start(QString("wmic.exe /OUTPUT:STDOUT PROCESS get %1").arg("Caption"));
|
process.start("wmic.exe", QStringList() << "/OUTPUT:STDOUT" << "PROCESS" << "get" << "Caption");
|
||||||
process.waitForStarted();
|
process.waitForStarted();
|
||||||
process.waitForFinished();
|
process.waitForFinished();
|
||||||
QString processData(process.readAll());
|
QString processData(process.readAll());
|
||||||
|
@ -165,9 +165,8 @@ bool Utils::checkIpSubnetFormat(const QString &ip)
|
||||||
void Utils::killProcessByName(const QString &name)
|
void Utils::killProcessByName(const QString &name)
|
||||||
{
|
{
|
||||||
qDebug().noquote() << "Kill process" << name;
|
qDebug().noquote() << "Kill process" << name;
|
||||||
qDebug() << "Hello";
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
QProcess::execute(QString("taskkill /im %1 /f").arg(name));
|
QProcess::execute("taskkill", QStringList() << "/IM" << name << "/F");
|
||||||
#elif defined Q_OS_IOS
|
#elif defined Q_OS_IOS
|
||||||
return;
|
return;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue