Skip to content

Commit

Permalink
Fixes for Cloak proto
Browse files Browse the repository at this point in the history
  • Loading branch information
pokamest committed May 20, 2023
1 parent f0ad76f commit b5b69ff
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 22 deletions.
7 changes: 2 additions & 5 deletions client/configurators/cloak_configurator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,8 @@ QString CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
config.insert("NumConn", 4);
config.insert("BrowserSig", "chrome");
config.insert("StreamTimeout", 300);

// transfer params to protocol runner
config.insert(config_key::transport_proto, "tcp");
config.insert(config_key::remote, credentials.hostName);
config.insert(config_key::port, "$CLOAK_SERVER_PORT");
config.insert("RemoteHost", credentials.hostName);
config.insert("RemotePort", "$CLOAK_SERVER_PORT");

QString textCfg = serverController.replaceVars(QJsonDocument(config).toJson(),
serverController.genVarsForScript(credentials, container, containerConfig));
Expand Down
26 changes: 12 additions & 14 deletions client/protocols/openvpnovercloakprotocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol()
{
qDebug() << "OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol";
OpenVpnOverCloakProtocol::stop();
QThread::msleep(200);
#ifndef Q_OS_IOS
m_ckProcess.close();
#endif
}

ErrorCode OpenVpnOverCloakProtocol::start()
Expand All @@ -30,11 +27,17 @@ ErrorCode OpenVpnOverCloakProtocol::start()
setLastError(ErrorCode::CloakExecutableMissing);
return lastError();
}
#ifndef Q_OS_IOS

if (Utils::processIsRunning(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
m_cloakCfgFile.setAutoRemove(false);
#endif
Expand All @@ -43,15 +46,8 @@ ErrorCode OpenVpnOverCloakProtocol::start()
m_cloakCfgFile.close();

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;

ProtocolEnumNS::TransportProto tp = ProtocolProps::transportProtoFromString(m_cloakConfig.value(config_key::transport_proto).toString());
if (tp == ProtocolEnumNS::TransportProto::Udp) {
args << "-u";
}

qDebug().noquote() << "OpenVpnOverCloakProtocol::start()"
<< cloakExecPath() << args.join(" ");

Expand Down Expand Up @@ -86,7 +82,6 @@ ErrorCode OpenVpnOverCloakProtocol::start()
return OpenVpnProtocol::start();
}
else return ErrorCode::CloakExecutableMissing;
#endif
}

void OpenVpnOverCloakProtocol::stop()
Expand All @@ -100,9 +95,12 @@ void OpenVpnOverCloakProtocol::stop()
Utils::signalCtrl(m_ckProcess.processId(), CTRL_C_EVENT);
#endif

#ifndef Q_OS_IOS
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()
Expand Down
5 changes: 2 additions & 3 deletions client/utilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ bool Utils::processIsRunning(const QString& fileName)
QProcess process;
process.setReadChannel(QProcess::StandardOutput);
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.waitForFinished();
QString processData(process.readAll());
Expand Down Expand Up @@ -165,9 +165,8 @@ bool Utils::checkIpSubnetFormat(const QString &ip)
void Utils::killProcessByName(const QString &name)
{
qDebug().noquote() << "Kill process" << name;
qDebug() << "Hello";
#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
return;
#else
Expand Down

0 comments on commit b5b69ff

Please sign in to comment.