refactoring
Protocol to DockerContainer
This commit is contained in:
parent
615bba69e5
commit
d424bb24cf
13 changed files with 60 additions and 64 deletions
|
|
@ -7,12 +7,10 @@
|
||||||
#include "protocols/protocols_defs.h"
|
#include "protocols/protocols_defs.h"
|
||||||
|
|
||||||
QJsonObject CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
|
QJsonObject CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
|
||||||
Protocol proto, ErrorCode *errorCode)
|
DockerContainer container, ErrorCode *errorCode)
|
||||||
{
|
{
|
||||||
ErrorCode e = ErrorCode::NoError;
|
ErrorCode e = ErrorCode::NoError;
|
||||||
|
|
||||||
DockerContainer container = amnezia::containerForProto(proto);
|
|
||||||
|
|
||||||
QString cloakPublicKey = ServerController::getTextFileFromContainer(container, credentials,
|
QString cloakPublicKey = ServerController::getTextFileFromContainer(container, credentials,
|
||||||
amnezia::protocols::cloak::ckPublicKeyPath, &e);
|
amnezia::protocols::cloak::ckPublicKeyPath, &e);
|
||||||
cloakPublicKey.replace("\n", "");
|
cloakPublicKey.replace("\n", "");
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ class CloakConfigurator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static QJsonObject genCloakConfig(const ServerCredentials &credentials, Protocol proto,
|
static QJsonObject genCloakConfig(const ServerCredentials &credentials, DockerContainer container,
|
||||||
ErrorCode *errorCode = nullptr);
|
ErrorCode *errorCode = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::createCertRequest()
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::prepareOpenVpnConfig(const ServerCredentials &credentials,
|
OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::prepareOpenVpnConfig(const ServerCredentials &credentials,
|
||||||
Protocol proto, ErrorCode *errorCode)
|
DockerContainer container, ErrorCode *errorCode)
|
||||||
{
|
{
|
||||||
OpenVpnConfigurator::ConnectionData connData = OpenVpnConfigurator::createCertRequest();
|
OpenVpnConfigurator::ConnectionData connData = OpenVpnConfigurator::createCertRequest();
|
||||||
connData.host = credentials.hostName;
|
connData.host = credentials.hostName;
|
||||||
|
|
@ -153,8 +153,6 @@ OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::prepareOpenVpnConfig(co
|
||||||
arg(amnezia::protocols::openvpn::clientsDirPath).
|
arg(amnezia::protocols::openvpn::clientsDirPath).
|
||||||
arg(connData.clientId);
|
arg(connData.clientId);
|
||||||
|
|
||||||
DockerContainer container = amnezia::containerForProto(proto);
|
|
||||||
|
|
||||||
ErrorCode e = ServerController::uploadTextFileToContainer(container, credentials, connData.request, reqFileName);
|
ErrorCode e = ServerController::uploadTextFileToContainer(container, credentials, connData.request, reqFileName);
|
||||||
if (e) {
|
if (e) {
|
||||||
if (errorCode) *errorCode = e;
|
if (errorCode) *errorCode = e;
|
||||||
|
|
@ -194,7 +192,7 @@ Settings &OpenVpnConfigurator::m_settings()
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenVpnConfigurator::genOpenVpnConfig(const ServerCredentials &credentials,
|
QString OpenVpnConfigurator::genOpenVpnConfig(const ServerCredentials &credentials,
|
||||||
Protocol proto, ErrorCode *errorCode)
|
DockerContainer container, ErrorCode *errorCode)
|
||||||
{
|
{
|
||||||
// QFile configTemplFile;
|
// QFile configTemplFile;
|
||||||
// if (proto == Protocol::OpenVpn)
|
// if (proto == Protocol::OpenVpn)
|
||||||
|
|
@ -206,20 +204,20 @@ QString OpenVpnConfigurator::genOpenVpnConfig(const ServerCredentials &credentia
|
||||||
// configTemplFile.open(QIODevice::ReadOnly);
|
// configTemplFile.open(QIODevice::ReadOnly);
|
||||||
// QString config = configTemplFile.readAll();
|
// QString config = configTemplFile.readAll();
|
||||||
|
|
||||||
QString config = amnezia::scriptData(ProtocolScriptType::openvpn_template, proto);
|
QString config = amnezia::scriptData(ProtocolScriptType::openvpn_template, container);
|
||||||
|
|
||||||
ConnectionData connData = prepareOpenVpnConfig(credentials, proto, errorCode);
|
ConnectionData connData = prepareOpenVpnConfig(credentials, container, errorCode);
|
||||||
if (errorCode && *errorCode) {
|
if (errorCode && *errorCode) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proto == Protocol::OpenVpn)
|
if (container == DockerContainer::OpenVpn)
|
||||||
config.replace("$PROTO", "udp");
|
config.replace("$PROTO", "udp");
|
||||||
else if (proto == Protocol::ShadowSocksOverOpenVpn) {
|
else if (container == DockerContainer::ShadowSocksOverOpenVpn) {
|
||||||
config.replace("$PROTO", "tcp");
|
config.replace("$PROTO", "tcp");
|
||||||
config.replace("$LOCAL_PROXY_PORT", amnezia::protocols::shadowsocks::ssLocalProxyPort);
|
config.replace("$LOCAL_PROXY_PORT", amnezia::protocols::shadowsocks::ssLocalProxyPort);
|
||||||
}
|
}
|
||||||
else if (proto == Protocol::OpenVpnOverCloak) {
|
else if (container == DockerContainer::OpenVpnOverCloak) {
|
||||||
config.replace("$PROTO", "tcp");
|
config.replace("$PROTO", "tcp");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ public:
|
||||||
QString host; // host ip
|
QString host; // host ip
|
||||||
};
|
};
|
||||||
|
|
||||||
static QString genOpenVpnConfig(const ServerCredentials &credentials, Protocol proto,
|
static QString genOpenVpnConfig(const ServerCredentials &credentials, DockerContainer container,
|
||||||
ErrorCode *errorCode = nullptr);
|
ErrorCode *errorCode = nullptr);
|
||||||
|
|
||||||
static QString convertOpenSShKey(const QString &key);
|
static QString convertOpenSShKey(const QString &key);
|
||||||
|
|
@ -40,7 +40,7 @@ private:
|
||||||
static ConnectionData createCertRequest();
|
static ConnectionData createCertRequest();
|
||||||
|
|
||||||
static ConnectionData prepareOpenVpnConfig(const ServerCredentials &credentials,
|
static ConnectionData prepareOpenVpnConfig(const ServerCredentials &credentials,
|
||||||
Protocol proto, ErrorCode *errorCode = nullptr);
|
DockerContainer container, ErrorCode *errorCode = nullptr);
|
||||||
|
|
||||||
static Settings &m_settings();
|
static Settings &m_settings();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ Q_NAMESPACE
|
||||||
enum class Protocol {
|
enum class Protocol {
|
||||||
Any,
|
Any,
|
||||||
OpenVpn,
|
OpenVpn,
|
||||||
ShadowSocksOverOpenVpn,
|
ShadowSocks,
|
||||||
OpenVpnOverCloak,
|
Cloak,
|
||||||
WireGuard
|
WireGuard
|
||||||
};
|
};
|
||||||
Q_ENUM_NS(Protocol)
|
Q_ENUM_NS(Protocol)
|
||||||
|
|
@ -44,18 +44,18 @@ inline QString containerToString(DockerContainer container){
|
||||||
return QVariant::fromValue(container).toString();
|
return QVariant::fromValue(container).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static DockerContainer containerForProto(Protocol proto)
|
//static DockerContainer containerForProto(Protocol proto)
|
||||||
{
|
//{
|
||||||
Q_ASSERT(proto != Protocol::Any);
|
// Q_ASSERT(proto != Protocol::Any);
|
||||||
|
|
||||||
switch (proto) {
|
// switch (proto) {
|
||||||
case Protocol::OpenVpn: return DockerContainer::OpenVpn;
|
// case Protocol::OpenVpn: return DockerContainer::OpenVpn;
|
||||||
case Protocol::OpenVpnOverCloak: return DockerContainer::OpenVpnOverCloak;
|
// case Protocol::OpenVpnOverCloak: return DockerContainer::OpenVpnOverCloak;
|
||||||
case Protocol::ShadowSocksOverOpenVpn: return DockerContainer::ShadowSocksOverOpenVpn;
|
// case Protocol::ShadowSocksOverOpenVpn: return DockerContainer::ShadowSocksOverOpenVpn;
|
||||||
case Protocol::WireGuard: return DockerContainer::WireGuard;
|
// case Protocol::WireGuard: return DockerContainer::WireGuard;
|
||||||
case Protocol::Any: return DockerContainer::None;
|
// case Protocol::Any: return DockerContainer::None;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
struct ServerCredentials
|
struct ServerCredentials
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
|
||||||
QString amnezia::scriptFolder(amnezia::Protocol proto)
|
QString amnezia::scriptFolder(amnezia::DockerContainer container)
|
||||||
{
|
{
|
||||||
switch (proto) {
|
switch (container) {
|
||||||
case Protocol::OpenVpn: return QLatin1String("openvpn");
|
case DockerContainer::OpenVpn: return QLatin1String("openvpn");
|
||||||
case Protocol::OpenVpnOverCloak: return QLatin1String("openvpn_cloak");
|
case DockerContainer::OpenVpnOverCloak: return QLatin1String("openvpn_cloak");
|
||||||
case Protocol::ShadowSocksOverOpenVpn: return QLatin1String("openvpn_shadowsocks");
|
case DockerContainer::ShadowSocksOverOpenVpn: return QLatin1String("openvpn_shadowsocks");
|
||||||
case Protocol::WireGuard: return QLatin1String("wireguard");
|
case DockerContainer::WireGuard: return QLatin1String("wireguard");
|
||||||
default: return "";
|
default: return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -49,9 +49,9 @@ QString amnezia::scriptData(amnezia::SharedScriptType type)
|
||||||
return file.readAll();
|
return file.readAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString amnezia::scriptData(amnezia::ProtocolScriptType type, amnezia::Protocol proto)
|
QString amnezia::scriptData(amnezia::ProtocolScriptType type, DockerContainer container)
|
||||||
{
|
{
|
||||||
QString fileName = QString(":/server_scripts/%1/%2").arg(amnezia::scriptFolder(proto), amnezia::scriptName(type));
|
QString fileName = QString(":/server_scripts/%1/%2").arg(amnezia::scriptFolder(container), amnezia::scriptName(type));
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
if (! file.open(QIODevice::ReadOnly)) {
|
if (! file.open(QIODevice::ReadOnly)) {
|
||||||
qDebug() << "Error opening script" << fileName;
|
qDebug() << "Error opening script" << fileName;
|
||||||
|
|
|
||||||
|
|
@ -25,13 +25,13 @@ enum ProtocolScriptType {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
QString scriptFolder(Protocol proto);
|
QString scriptFolder(DockerContainer container);
|
||||||
|
|
||||||
QString scriptName(SharedScriptType type);
|
QString scriptName(SharedScriptType type);
|
||||||
QString scriptName(ProtocolScriptType type);
|
QString scriptName(ProtocolScriptType type);
|
||||||
|
|
||||||
QString scriptData(SharedScriptType type);
|
QString scriptData(SharedScriptType type);
|
||||||
QString scriptData(ProtocolScriptType type, Protocol proto);
|
QString scriptData(ProtocolScriptType type, DockerContainer container);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SCRIPTS_REGISTRY_H
|
#endif // SCRIPTS_REGISTRY_H
|
||||||
|
|
|
||||||
|
|
@ -467,7 +467,7 @@ ErrorCode ServerController::setupOpenVpnOverCloakServer(const ServerCredentials
|
||||||
genVarsForScript(credentials, container)));
|
genVarsForScript(credentials, container)));
|
||||||
if (e) return e;
|
if (e) return e;
|
||||||
|
|
||||||
uploadFileToHost(credentials, amnezia::scriptData(ProtocolScriptType::dockerfile, Protocol::OpenVpnOverCloak).toUtf8(),
|
uploadFileToHost(credentials, amnezia::scriptData(ProtocolScriptType::dockerfile, DockerContainer::OpenVpnOverCloak).toUtf8(),
|
||||||
amnezia::server::getDockerfileFolder(container) + "/Dockerfile");
|
amnezia::server::getDockerfileFolder(container) + "/Dockerfile");
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -489,12 +489,12 @@ ErrorCode ServerController::setupOpenVpnOverCloakServer(const ServerCredentials
|
||||||
|
|
||||||
|
|
||||||
runScript(sshParams(credentials),
|
runScript(sshParams(credentials),
|
||||||
replaceVars(amnezia::scriptData(ProtocolScriptType::configure_container, Protocol::OpenVpnOverCloak),
|
replaceVars(amnezia::scriptData(ProtocolScriptType::configure_container, DockerContainer::OpenVpnOverCloak),
|
||||||
genVarsForScript(credentials, container)));
|
genVarsForScript(credentials, container)));
|
||||||
if (e) return e;
|
if (e) return e;
|
||||||
|
|
||||||
uploadTextFileToContainer(DockerContainer::OpenVpnOverCloak, credentials,
|
uploadTextFileToContainer(DockerContainer::OpenVpnOverCloak, credentials,
|
||||||
replaceVars(amnezia::scriptData(ProtocolScriptType::container_startup, Protocol::OpenVpnOverCloak),
|
replaceVars(amnezia::scriptData(ProtocolScriptType::container_startup, DockerContainer::OpenVpnOverCloak),
|
||||||
genVarsForScript(credentials, container)),
|
genVarsForScript(credentials, container)),
|
||||||
"/opt/amnezia/start.sh");
|
"/opt/amnezia/start.sh");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ QString ShadowSocksVpnProtocol::shadowSocksExecPath()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonObject ShadowSocksVpnProtocol::genShadowSocksConfig(const ServerCredentials &credentials, Protocol proto)
|
QJsonObject ShadowSocksVpnProtocol::genShadowSocksConfig(const ServerCredentials &credentials, DockerContainer container)
|
||||||
{
|
{
|
||||||
QJsonObject ssConfig;
|
QJsonObject ssConfig;
|
||||||
ssConfig.insert("server", credentials.hostName);
|
ssConfig.insert("server", credentials.hostName);
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ public:
|
||||||
ErrorCode start() override;
|
ErrorCode start() override;
|
||||||
void stop() override;
|
void stop() override;
|
||||||
|
|
||||||
static QJsonObject genShadowSocksConfig(const ServerCredentials &credentials, Protocol proto = Protocol::ShadowSocksOverOpenVpn);
|
static QJsonObject genShadowSocksConfig(const ServerCredentials &credentials, DockerContainer container = DockerContainer::ShadowSocksOverOpenVpn);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void readShadowSocksConfiguration(const QJsonObject &configuration);
|
void readShadowSocksConfiguration(const QJsonObject &configuration);
|
||||||
|
|
|
||||||
|
|
@ -108,12 +108,12 @@ QJsonObject Settings::protocolConfig(int serverIndex, DockerContainer container,
|
||||||
switch (proto) {
|
switch (proto) {
|
||||||
case Protocol::OpenVpn:
|
case Protocol::OpenVpn:
|
||||||
return c.value(config_key::openvpn).toObject();
|
return c.value(config_key::openvpn).toObject();
|
||||||
case Protocol::OpenVpnOverCloak:
|
case Protocol::ShadowSocks:
|
||||||
return c.value(config_key::openvpn).toObject();
|
return c.value(config_key::shadowsocks).toObject();
|
||||||
case Protocol::ShadowSocksOverOpenVpn:
|
case Protocol::Cloak:
|
||||||
return c.value(config_key::openvpn).toObject();
|
return c.value(config_key::cloak).toObject();
|
||||||
default:
|
default:
|
||||||
break;
|
return QJsonObject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,11 +80,11 @@ ErrorCode VpnConnection::lastError() const
|
||||||
return m_vpnProtocol.data()->lastError();
|
return m_vpnProtocol.data()->lastError();
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorCode VpnConnection::createVpnConfiguration(const ServerCredentials &credentials, Protocol protocol)
|
ErrorCode VpnConnection::createVpnConfiguration(const ServerCredentials &credentials, DockerContainer container)
|
||||||
{
|
{
|
||||||
ErrorCode errorCode = ErrorCode::NoError;
|
ErrorCode errorCode = ErrorCode::NoError;
|
||||||
if (protocol == Protocol::OpenVpn || protocol == Protocol::ShadowSocksOverOpenVpn || protocol == Protocol::OpenVpnOverCloak) {
|
if (container == DockerContainer::OpenVpn || container == DockerContainer::ShadowSocksOverOpenVpn || container == DockerContainer::OpenVpnOverCloak) {
|
||||||
QString openVpnConfigData = OpenVpnConfigurator::genOpenVpnConfig(credentials, protocol, &errorCode);
|
QString openVpnConfigData = OpenVpnConfigurator::genOpenVpnConfig(credentials, container, &errorCode);
|
||||||
m_vpnConfiguration.insert(config::key_openvpn_config_data, openVpnConfigData);
|
m_vpnConfiguration.insert(config::key_openvpn_config_data, openVpnConfigData);
|
||||||
if (errorCode) {
|
if (errorCode) {
|
||||||
return errorCode;
|
return errorCode;
|
||||||
|
|
@ -101,13 +101,13 @@ ErrorCode VpnConnection::createVpnConfiguration(const ServerCredentials &credent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (protocol == Protocol::ShadowSocksOverOpenVpn) {
|
if (container == DockerContainer::ShadowSocksOverOpenVpn) {
|
||||||
QJsonObject ssConfigData = ShadowSocksVpnProtocol::genShadowSocksConfig(credentials);
|
QJsonObject ssConfigData = ShadowSocksVpnProtocol::genShadowSocksConfig(credentials);
|
||||||
m_vpnConfiguration.insert(config::key_shadowsocks_config_data, ssConfigData);
|
m_vpnConfiguration.insert(config::key_shadowsocks_config_data, ssConfigData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (protocol == Protocol::OpenVpnOverCloak) {
|
if (container == DockerContainer::OpenVpnOverCloak) {
|
||||||
QJsonObject cloakConfigData = CloakConfigurator::genCloakConfig(credentials, Protocol::OpenVpnOverCloak, &errorCode);
|
QJsonObject cloakConfigData = CloakConfigurator::genCloakConfig(credentials, DockerContainer::OpenVpnOverCloak, &errorCode);
|
||||||
m_vpnConfiguration.insert(config::key_cloak_config_data, cloakConfigData);
|
m_vpnConfiguration.insert(config::key_cloak_config_data, cloakConfigData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -115,13 +115,13 @@ ErrorCode VpnConnection::createVpnConfiguration(const ServerCredentials &credent
|
||||||
return ErrorCode::NoError;
|
return ErrorCode::NoError;
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrorCode VpnConnection::connectToVpn(const ServerCredentials &credentials, Protocol protocol)
|
ErrorCode VpnConnection::connectToVpn(const ServerCredentials &credentials, DockerContainer container)
|
||||||
{
|
{
|
||||||
qDebug() << "connectToVpn, CustomRouting is" << m_settings.customRouting();
|
qDebug() << "connectToVpn, CustomRouting is" << m_settings.customRouting();
|
||||||
// qDebug() << "Cred" << m_settings.serverCredentials().hostName <<
|
// qDebug() << "Cred" << m_settings.serverCredentials().hostName <<
|
||||||
// m_settings.serverCredentials().password;
|
// m_settings.serverCredentials().password;
|
||||||
//protocol = Protocol::ShadowSocks;
|
//protocol = Protocol::ShadowSocks;
|
||||||
protocol = Protocol::OpenVpnOverCloak;
|
container = DockerContainer::OpenVpnOverCloak;
|
||||||
|
|
||||||
// TODO: Try protocols one by one in case of Protocol::Any
|
// TODO: Try protocols one by one in case of Protocol::Any
|
||||||
// TODO: Implement some behavior in case if connection not stable
|
// TODO: Implement some behavior in case if connection not stable
|
||||||
|
|
@ -138,8 +138,8 @@ ErrorCode VpnConnection::connectToVpn(const ServerCredentials &credentials, Prot
|
||||||
|
|
||||||
//qApp->processEvents();
|
//qApp->processEvents();
|
||||||
|
|
||||||
if (protocol == Protocol::Any || protocol == Protocol::OpenVpn) {
|
if (container == DockerContainer::None || container == DockerContainer::OpenVpn) {
|
||||||
ErrorCode e = createVpnConfiguration(credentials, Protocol::OpenVpn);
|
ErrorCode e = createVpnConfiguration(credentials, DockerContainer::OpenVpn);
|
||||||
if (e) {
|
if (e) {
|
||||||
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
||||||
return e;
|
return e;
|
||||||
|
|
@ -152,8 +152,8 @@ ErrorCode VpnConnection::connectToVpn(const ServerCredentials &credentials, Prot
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (protocol == Protocol::ShadowSocksOverOpenVpn) {
|
else if (container == DockerContainer::ShadowSocksOverOpenVpn) {
|
||||||
ErrorCode e = createVpnConfiguration(credentials, Protocol::ShadowSocksOverOpenVpn);
|
ErrorCode e = createVpnConfiguration(credentials, DockerContainer::ShadowSocksOverOpenVpn);
|
||||||
if (e) {
|
if (e) {
|
||||||
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
||||||
return e;
|
return e;
|
||||||
|
|
@ -166,8 +166,8 @@ ErrorCode VpnConnection::connectToVpn(const ServerCredentials &credentials, Prot
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (protocol == Protocol::OpenVpnOverCloak) {
|
else if (container == DockerContainer::OpenVpnOverCloak) {
|
||||||
ErrorCode e = createVpnConfiguration(credentials, Protocol::OpenVpnOverCloak);
|
ErrorCode e = createVpnConfiguration(credentials, DockerContainer::OpenVpnOverCloak);
|
||||||
if (e) {
|
if (e) {
|
||||||
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
emit connectionStateChanged(VpnProtocol::ConnectionState::Error);
|
||||||
return e;
|
return e;
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ public:
|
||||||
static QString bytesPerSecToText(quint64 bytes);
|
static QString bytesPerSecToText(quint64 bytes);
|
||||||
|
|
||||||
ErrorCode lastError() const;
|
ErrorCode lastError() const;
|
||||||
ErrorCode createVpnConfiguration(const ServerCredentials &credentials, Protocol protocol);
|
ErrorCode createVpnConfiguration(const ServerCredentials &credentials, DockerContainer container);
|
||||||
|
|
||||||
ErrorCode connectToVpn(const ServerCredentials &credentials, Protocol protocol = Protocol::Any);
|
ErrorCode connectToVpn(const ServerCredentials &credentials, DockerContainer container = DockerContainer::None);
|
||||||
void disconnectFromVpn();
|
void disconnectFromVpn();
|
||||||
|
|
||||||
bool isConnected() const;
|
bool isConnected() const;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue