fix: fixed awg2 container processing (#2067)

This commit is contained in:
vkamn
2025-12-18 22:25:20 +08:00
committed by GitHub
parent 36edafb985
commit 46ce22b85c
16 changed files with 347 additions and 116 deletions
+35 -7
View File
@@ -158,7 +158,7 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
QString primaryDns = server.value(config_key::dns1).toString();
return primaryDns == protocols::dns::amneziaDnsIp;
}
case IsAdVisibleRole:{
case IsAdVisibleRole: {
return apiConfig.value(apiDefs::key::serviceInfo).toObject().value(apiDefs::key::isAdVisible).toBool(false);
}
case AdHeaderRole: {
@@ -234,16 +234,29 @@ QString ServersModel::getServerDescription(const QJsonObject &server, const int
const QString ServersModel::getDefaultServerDescriptionCollapsed()
{
const QJsonObject server = m_servers.at(m_defaultServerIndex).toObject();
const auto configVersion = server.value(config_key::configVersion).toInt();
auto description = getServerDescription(server, m_defaultServerIndex);
const QJsonObject serverConfig = m_servers.at(m_defaultServerIndex).toObject();
const auto configVersion = serverConfig.value(config_key::configVersion).toInt();
auto description = getServerDescription(serverConfig, m_defaultServerIndex);
if (configVersion) {
return description;
}
auto container = ContainerProps::containerFromString(server.value(config_key::defaultContainer).toString());
auto container = ContainerProps::containerFromString(serverConfig.value(config_key::defaultContainer).toString());
QString protocolVersion;
QString containerName = ContainerProps::containerHumanNames().value(container);
return description += ContainerProps::containerHumanNames().value(container) + " | " + server.value(config_key::hostName).toString();
if (ContainerProps::isAwgContainer(container)) {
QJsonObject containerConfig = m_settings->containerConfig(m_defaultServerIndex, container);
QJsonObject serverProtocolConfig = containerConfig.value(ContainerProps::containerTypeToProtocolString(container)).toObject();
protocolVersion = ProtocolProps::getProtocolVersionString(serverProtocolConfig);
auto isThirdPartyConfig = serverProtocolConfig.value(config_key::isThirdPartyConfig).toBool();
if (container == DockerContainer::Awg && !isThirdPartyConfig) {
containerName = "AmneziaWG Legacy";
}
}
return description += containerName + protocolVersion + " | " + serverConfig.value(config_key::hostName).toString();
}
const QString ServersModel::getDefaultServerDescriptionExpanded()
@@ -522,7 +535,22 @@ void ServersModel::setDefaultContainer(const int serverIndex, const int containe
const QString ServersModel::getDefaultServerDefaultContainerName()
{
auto defaultContainer = qvariant_cast<DockerContainer>(getDefaultServerData("defaultContainer"));
return ContainerProps::containerHumanNames().value(defaultContainer);
QString protocolVersion;
QString containerName = ContainerProps::containerHumanNames().value(defaultContainer);
if (ContainerProps::isAwgContainer(defaultContainer)) {
QJsonObject containerConfig = m_settings->containerConfig(m_defaultServerIndex, defaultContainer);
QJsonObject serverProtocolConfig = containerConfig.value(ContainerProps::containerTypeToProtocolString(defaultContainer)).toObject();
protocolVersion = ProtocolProps::getProtocolVersionString(serverProtocolConfig);
auto isThirdPartyConfig = serverProtocolConfig.value(config_key::isThirdPartyConfig).toBool();
if (defaultContainer == DockerContainer::Awg && !isThirdPartyConfig) {
containerName = "AmneziaWG Legacy";
}
}
return containerName + protocolVersion;
}
ErrorCode ServersModel::removeAllContainers(const QSharedPointer<ServerController> &serverController)