Various types containers support
This commit is contained in:
parent
0d9f1ba95b
commit
157d7c4f23
39 changed files with 609 additions and 479 deletions
|
|
@ -3,27 +3,9 @@
|
|||
|
||||
NewServerProtocolsLogic::NewServerProtocolsLogic(UiLogic *logic, QObject *parent):
|
||||
PageLogicBase(logic, parent),
|
||||
m_pushButtonSettingsCloakChecked{false},
|
||||
m_pushButtonSettingsSsChecked{false},
|
||||
m_pushButtonSettingsOpenvpnChecked{false},
|
||||
m_lineEditCloakPortText{},
|
||||
m_lineEditCloakSiteText{},
|
||||
m_lineEditSsPortText{},
|
||||
m_comboBoxSsCipherText{"chacha20-ietf-poly1305"},
|
||||
m_lineEditOpenvpnPortText{},
|
||||
m_comboBoxOpenvpnProtoText{"udp"},
|
||||
m_frameSettingsParentWireguardVisible{false},
|
||||
m_checkBoxCloakChecked{true},
|
||||
m_checkBoxSsChecked{false},
|
||||
m_checkBoxOpenVpnChecked{false},
|
||||
m_progressBarConnectionMinimum{0},
|
||||
m_progressBarConnectionMaximum{100}
|
||||
{
|
||||
set_frameSettingsParentWireguardVisible(false);
|
||||
|
||||
connect(this, &NewServerProtocolsLogic::pushButtonConfigureClicked, this, [this](){
|
||||
uiLogic()->installServer(getInstallConfigsFromProtocolsPage());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -31,57 +13,23 @@ void NewServerProtocolsLogic::updatePage()
|
|||
{
|
||||
set_progressBarConnectionMinimum(0);
|
||||
set_progressBarConnectionMaximum(300);
|
||||
|
||||
set_pushButtonSettingsCloakChecked(true);
|
||||
set_pushButtonSettingsCloakChecked(false);
|
||||
set_pushButtonSettingsSsChecked(true);
|
||||
set_pushButtonSettingsSsChecked(false);
|
||||
set_lineEditCloakPortText(amnezia::protocols::cloak::defaultPort);
|
||||
set_lineEditCloakSiteText(amnezia::protocols::cloak::defaultRedirSite);
|
||||
set_lineEditSsPortText(amnezia::protocols::shadowsocks::defaultPort);
|
||||
set_comboBoxSsCipherText(amnezia::protocols::shadowsocks::defaultCipher);
|
||||
set_lineEditOpenvpnPortText(amnezia::protocols::openvpn::defaultPort);
|
||||
set_comboBoxOpenvpnProtoText(amnezia::protocols::openvpn::defaultTransportProto);
|
||||
}
|
||||
|
||||
QMap<DockerContainer, QJsonObject> NewServerProtocolsLogic::getInstallConfigsFromProtocolsPage() const
|
||||
void NewServerProtocolsLogic::onPushButtonConfigureClicked(DockerContainer c, int port, TransportProto tp)
|
||||
{
|
||||
QJsonObject cloakConfig {
|
||||
{ config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverCloak) },
|
||||
{ config_key::cloak, QJsonObject {
|
||||
{ config_key::port, lineEditCloakPortText() },
|
||||
{ config_key::site, lineEditCloakSiteText() }}
|
||||
}
|
||||
};
|
||||
QJsonObject ssConfig {
|
||||
{ config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverShadowSocks) },
|
||||
{ config_key::shadowsocks, QJsonObject {
|
||||
{ config_key::port, lineEditSsPortText() },
|
||||
{ config_key::cipher, comboBoxSsCipherText() }}
|
||||
}
|
||||
};
|
||||
QJsonObject openVpnConfig {
|
||||
{ config_key::container, amnezia::containerToString(DockerContainer::OpenVpn) },
|
||||
{ config_key::openvpn, QJsonObject {
|
||||
{ config_key::port, lineEditOpenvpnPortText() },
|
||||
{ config_key::transport_proto, comboBoxOpenvpnProtoText() }}
|
||||
}
|
||||
};
|
||||
|
||||
QMap<DockerContainer, QJsonObject> containers;
|
||||
Protocol mainProto = ContainerProps::defaultProtocol(c);
|
||||
|
||||
if (checkBoxCloakChecked()) {
|
||||
containers.insert(DockerContainer::OpenVpnOverCloak, cloakConfig);
|
||||
}
|
||||
QJsonObject config {
|
||||
{ config_key::container, ContainerProps::containerToString(c) },
|
||||
{ ProtocolProps::protoToString(mainProto), QJsonObject {
|
||||
{ config_key::port, QString::number(port) },
|
||||
{ config_key::transport_proto, ProtocolProps::transportProtoToString(tp, mainProto) }}
|
||||
}
|
||||
};
|
||||
|
||||
if (checkBoxSsChecked()) {
|
||||
containers.insert(DockerContainer::OpenVpnOverShadowSocks, ssConfig);
|
||||
}
|
||||
containers.insert(c, config);
|
||||
|
||||
if (checkBoxOpenVpnChecked()) {
|
||||
containers.insert(DockerContainer::OpenVpn, openVpnConfig);
|
||||
}
|
||||
|
||||
return containers;
|
||||
uiLogic()->installServer(containers);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue