From 551f7616f00aac45b86e1c82c0efe5aac583aad4 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Mon, 11 Sep 2023 13:56:49 +0500 Subject: [PATCH] fixed the display of the protocol list in the settings when attempting to install a container that is already installed on the server --- client/core/servercontroller.cpp | 25 ++++++++++++++++------ client/ui/qml/Pages2/PageSettingsAbout.qml | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/client/core/servercontroller.cpp b/client/core/servercontroller.cpp index ef7a8024..b0f8146f 100644 --- a/client/core/servercontroller.cpp +++ b/client/core/servercontroller.cpp @@ -665,7 +665,8 @@ ErrorCode ServerController::isServerPortBusy(const ServerCredentials &credential QString transportProto = containerConfig.value(config_key::transport_proto).toString(defaultTransportProto); // TODO reimplement with netstat - QString script = QString("which lsof &>/dev/null || true && sudo lsof -i -P -n 2>/dev/null | grep -E ':%1 ").arg(port); + QString script = + QString("which lsof &>/dev/null || true && sudo lsof -i -P -n 2>/dev/null | grep -E ':%1 ").arg(port); for (auto &port : fixedPorts) { script = script.append("|:%1").arg(port); } @@ -739,8 +740,10 @@ ErrorCode ServerController::isServerDpkgBusy(const ServerCredentials &credential genVarsForScript(credentials)), cbReadStdOut, cbReadStdErr); - if (stdOut.contains("Packet manager not found")) return ErrorCode::ServerPacketManagerError; - if (stdOut.contains("fuser not installed")) return ErrorCode::NoError; + if (stdOut.contains("Packet manager not found")) + return ErrorCode::ServerPacketManagerError; + if (stdOut.contains("fuser not installed")) + return ErrorCode::NoError; if (stdOut.isEmpty()) { return ErrorCode::NoError; @@ -798,11 +801,19 @@ ErrorCode ServerController::getAlreadyInstalledContainers(const ServerCredential QString port = containerAndPortMatch.captured(2); QString transportProto = containerAndPortMatch.captured(3); DockerContainer container = ContainerProps::containerFromString(name); + + QJsonObject config; Proto mainProto = ContainerProps::defaultProtocol(container); - QJsonObject config { { config_key::container, name }, - { ProtocolProps::protoToString(mainProto), - QJsonObject { { config_key::port, port }, - { config_key::transport_proto, transportProto } } } }; + for (auto protocol : ContainerProps::protocolsForContainer(container)) { + QJsonObject containerConfig; + if (protocol == mainProto) { + containerConfig.insert(config_key::port, port); + containerConfig.insert(config_key::transport_proto, transportProto); + + config.insert(config_key::container, ContainerProps::containerToString(container)); + } + config.insert(ProtocolProps::protoToString(protocol), containerConfig); + } installedContainers.insert(container, config); } } diff --git a/client/ui/qml/Pages2/PageSettingsAbout.qml b/client/ui/qml/Pages2/PageSettingsAbout.qml index 1a6f7e80..e73ef88f 100644 --- a/client/ui/qml/Pages2/PageSettingsAbout.qml +++ b/client/ui/qml/Pages2/PageSettingsAbout.qml @@ -122,7 +122,7 @@ And if you don't like the app, all the more support it - the donation will be us leftImageSource: "qrc:/images/controls/telegram.svg" clickedFunction: function() { - Qt.openUrlExternally(qsTr("https://t.me/amnezia_vpn_dev")) + Qt.openUrlExternally(qsTr("https://t.me/amnezia_vpn_en")) } }