Add xray native config export
This commit is contained in:
parent
1077f009aa
commit
c907818311
5 changed files with 14 additions and 7 deletions
|
|
@ -121,9 +121,8 @@ ErrorCode ExportController::generateNativeConfig(const DockerContainer container
|
||||||
|
|
||||||
jsonNativeConfig = QJsonDocument::fromJson(protocolConfigString.toUtf8()).object();
|
jsonNativeConfig = QJsonDocument::fromJson(protocolConfigString.toUtf8()).object();
|
||||||
|
|
||||||
if (protocol == Proto::OpenVpn || protocol == Proto::WireGuard || protocol == Proto::Awg) {
|
if (protocol == Proto::OpenVpn || protocol == Proto::WireGuard || protocol == Proto::Awg || protocol == Proto::Xray) {
|
||||||
auto clientId = jsonNativeConfig.value(config_key::clientId).toString();
|
errorCode = m_clientManagementModel->appendClient(jsonNativeConfig, clientName, container, credentials, serverController);
|
||||||
errorCode = m_clientManagementModel->appendClient(clientId, clientName, container, credentials, serverController);
|
|
||||||
}
|
}
|
||||||
return errorCode;
|
return errorCode;
|
||||||
}
|
}
|
||||||
|
|
@ -248,10 +247,10 @@ void ExportController::generateCloakConfig()
|
||||||
emit exportConfigChanged();
|
emit exportConfigChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExportController::generateXrayConfig()
|
void ExportController::generateXrayConfig(const QString &clientName)
|
||||||
{
|
{
|
||||||
QJsonObject nativeConfig;
|
QJsonObject nativeConfig;
|
||||||
ErrorCode errorCode = generateNativeConfig(DockerContainer::Xray, "", Proto::Xray, nativeConfig);
|
ErrorCode errorCode = generateNativeConfig(DockerContainer::Xray, clientName, Proto::Xray, nativeConfig);
|
||||||
if (errorCode) {
|
if (errorCode) {
|
||||||
emit exportErrorOccurred(errorCode);
|
emit exportErrorOccurred(errorCode);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public slots:
|
||||||
void generateAwgConfig(const QString &clientName);
|
void generateAwgConfig(const QString &clientName);
|
||||||
void generateShadowSocksConfig();
|
void generateShadowSocksConfig();
|
||||||
void generateCloakConfig();
|
void generateCloakConfig();
|
||||||
void generateXrayConfig();
|
void generateXrayConfig(const QString &clientName);
|
||||||
|
|
||||||
QString getConfig();
|
QString getConfig();
|
||||||
QString getNativeConfigString();
|
QString getNativeConfigString();
|
||||||
|
|
|
||||||
|
|
@ -403,6 +403,12 @@ ErrorCode ClientManagementModel::appendClient(const DockerContainer container, c
|
||||||
}
|
}
|
||||||
|
|
||||||
auto protocolConfig = ContainerProps::getProtocolConfigFromContainer(protocol, containerConfig);
|
auto protocolConfig = ContainerProps::getProtocolConfigFromContainer(protocol, containerConfig);
|
||||||
|
return appendClient(protocolConfig, clientName, container, credentials, serverController);
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorCode ClientManagementModel::appendClient(QJsonObject &protocolConfig, const QString &clientName, const DockerContainer container,
|
||||||
|
const ServerCredentials &credentials, const QSharedPointer<ServerController> &serverController)
|
||||||
|
{
|
||||||
QString clientId;
|
QString clientId;
|
||||||
if (container == DockerContainer::Xray) {
|
if (container == DockerContainer::Xray) {
|
||||||
if (!protocolConfig.contains("outbounds")) {
|
if (!protocolConfig.contains("outbounds")) {
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,8 @@ public slots:
|
||||||
const QSharedPointer<ServerController> &serverController);
|
const QSharedPointer<ServerController> &serverController);
|
||||||
ErrorCode appendClient(const DockerContainer container, const ServerCredentials &credentials, const QJsonObject &containerConfig,
|
ErrorCode appendClient(const DockerContainer container, const ServerCredentials &credentials, const QJsonObject &containerConfig,
|
||||||
const QString &clientName, const QSharedPointer<ServerController> &serverController);
|
const QString &clientName, const QSharedPointer<ServerController> &serverController);
|
||||||
|
ErrorCode appendClient(QJsonObject &protocolConfig, const QString &clientName,const DockerContainer container,
|
||||||
|
const ServerCredentials &credentials, const QSharedPointer<ServerController> &serverController);
|
||||||
ErrorCode appendClient(const QString &clientId, const QString &clientName, const DockerContainer container,
|
ErrorCode appendClient(const QString &clientId, const QString &clientName, const DockerContainer container,
|
||||||
const ServerCredentials &credentials, const QSharedPointer<ServerController> &serverController);
|
const ServerCredentials &credentials, const QSharedPointer<ServerController> &serverController);
|
||||||
ErrorCode renameClient(const int row, const QString &userName, const DockerContainer container, const ServerCredentials &credentials,
|
ErrorCode renameClient(const int row, const QString &userName, const DockerContainer container, const ServerCredentials &credentials,
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ PageType {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case PageShare.ConfigType.Xray: {
|
case PageShare.ConfigType.Xray: {
|
||||||
ExportController.generateXrayConfig()
|
ExportController.generateXrayConfig(clientNameTextField.textFieldText)
|
||||||
shareConnectionDrawer.configCaption = qsTr("Save XRay config")
|
shareConnectionDrawer.configCaption = qsTr("Save XRay config")
|
||||||
shareConnectionDrawer.configExtension = ".json"
|
shareConnectionDrawer.configExtension = ".json"
|
||||||
shareConnectionDrawer.configFileName = "amnezia_for_xray"
|
shareConnectionDrawer.configFileName = "amnezia_for_xray"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue