Fix creation of Xray client config

This commit is contained in:
aiamnezia 2024-10-26 07:39:51 +04:00
parent 9ecdcc7e0a
commit 08bbf8818e
2 changed files with 9 additions and 8 deletions

View file

@ -72,7 +72,6 @@ QString XrayConfigurator::prepareServerConfig(const ServerCredentials &credentia
amnezia::protocols::xray::serverConfigPath, amnezia::protocols::xray::serverConfigPath,
libssh::ScpOverwriteMode::ScpOverwriteExisting libssh::ScpOverwriteMode::ScpOverwriteExisting
); );
qDebug() << "Updated config:" << updatedConfig;
if (errorCode != ErrorCode::NoError) { if (errorCode != ErrorCode::NoError) {
return ""; return "";
} }
@ -121,10 +120,6 @@ QString XrayConfigurator::createConfig(const ServerCredentials &credentials, Doc
config.replace("$XRAY_PUBLIC_KEY", xrayPublicKey); config.replace("$XRAY_PUBLIC_KEY", xrayPublicKey);
config.replace("$XRAY_SHORT_ID", xrayShortId); config.replace("$XRAY_SHORT_ID", xrayShortId);
QJsonObject jConfig;
jConfig[config_key::config] = config;
jConfig[config_key::clientId] = xrayClientId;
qDebug() << "===>> xrayClientId: " << xrayClientId; qDebug() << "===>> xrayClientId: " << xrayClientId;
return QJsonDocument(jConfig).toJson(); return config;
} }

View file

@ -386,8 +386,14 @@ ErrorCode ClientManagementModel::appendClient(const DockerContainer container, c
} }
auto protocolConfig = ContainerProps::getProtocolConfigFromContainer(protocol, containerConfig); auto protocolConfig = ContainerProps::getProtocolConfigFromContainer(protocol, containerConfig);
QString clientId;
return appendClient(protocolConfig.value(config_key::clientId).toString(), clientName, container, credentials, serverController); if (container == DockerContainer::Xray) {
clientId = protocolConfig.value("outbounds").toArray()[0].toObject()["settings"].toObject()["vnext"]
.toArray()[0].toObject()["users"].toArray()[0].toObject()["id"].toString();
} else {
clientId = protocolConfig.value(config_key::clientId).toString();
}
return appendClient(clientId, clientName, container, credentials, serverController);
} }
ErrorCode ClientManagementModel::appendClient(const QString &clientId, const QString &clientName, const DockerContainer container, ErrorCode ClientManagementModel::appendClient(const QString &clientId, const QString &clientName, const DockerContainer container,