Compare commits
9 commits
dev
...
feature/eu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1f8d58ece | ||
|
|
ec68bdde2e | ||
|
|
520dd18d94 | ||
|
|
dc8830799b | ||
|
|
bf6ca080b6 | ||
|
|
4bd431a499 | ||
|
|
3734c532fc | ||
|
|
efe80688d6 | ||
|
|
d241c82500 |
17 changed files with 57 additions and 6 deletions
|
|
@ -1 +1 @@
|
|||
Subproject commit e555c78bcf44070d5c88bcca54480732c9164f18
|
||||
Subproject commit e65b608bcb8500136e609d8fc7f3d719b25f0210
|
||||
|
|
@ -41,6 +41,7 @@ QString AwgConfigurator::createConfig(const ServerCredentials &credentials, Dock
|
|||
jsonConfig[config_key::transportPacketMagicHeader] = configMap.value(config_key::transportPacketMagicHeader);
|
||||
jsonConfig[config_key::mtu] =
|
||||
containerConfig.value(ProtocolProps::protoToString(Proto::Awg)).toObject().value(config_key::mtu).toString(protocols::awg::defaultMtu);
|
||||
jsonConfig[config_key::luaCodec] = configMap.value(config_key::luaCodec);
|
||||
|
||||
return QJsonDocument(jsonConfig).toJson();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -367,7 +367,9 @@ bool ServerController::isReinstallContainerRequired(DockerContainer container, c
|
|||
|| (oldProtoConfig.value(config_key::underloadPacketMagicHeader).toString(protocols::awg::defaultUnderloadPacketMagicHeader)
|
||||
!= newProtoConfig.value(config_key::underloadPacketMagicHeader).toString(protocols::awg::defaultUnderloadPacketMagicHeader))
|
||||
|| (oldProtoConfig.value(config_key::transportPacketMagicHeader).toString(protocols::awg::defaultTransportPacketMagicHeader)
|
||||
!= newProtoConfig.value(config_key::transportPacketMagicHeader).toString(protocols::awg::defaultTransportPacketMagicHeader)))
|
||||
!= newProtoConfig.value(config_key::transportPacketMagicHeader).toString(protocols::awg::defaultTransportPacketMagicHeader))
|
||||
|| (oldProtoConfig.value(config_key::luaCodec).toString(protocols::awg::defaultLuaCodec)
|
||||
!= newProtoConfig.value(config_key::luaCodec).toString(protocols::awg::defaultLuaCodec)))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -624,6 +626,7 @@ ServerController::Vars ServerController::genVarsForScript(const ServerCredential
|
|||
vars.append({ { "$RESPONSE_PACKET_MAGIC_HEADER", amneziaWireguarConfig.value(config_key::responsePacketMagicHeader).toString() } });
|
||||
vars.append({ { "$UNDERLOAD_PACKET_MAGIC_HEADER", amneziaWireguarConfig.value(config_key::underloadPacketMagicHeader).toString() } });
|
||||
vars.append({ { "$TRANSPORT_PACKET_MAGIC_HEADER", amneziaWireguarConfig.value(config_key::transportPacketMagicHeader).toString() } });
|
||||
vars.append({ { "$LUA_CODEC", amneziaWireguarConfig.value(config_key::luaCodec).toString() } });
|
||||
|
||||
// Socks5 proxy vars
|
||||
vars.append({ { "$SOCKS5_PROXY_PORT", socks5ProxyConfig.value(config_key::port).toString(protocols::socks5Proxy::defaultPort) } });
|
||||
|
|
|
|||
|
|
@ -401,6 +401,9 @@ bool Daemon::parseConfig(const QJsonObject& obj, InterfaceConfig& config) {
|
|||
if (!obj.value("H4").isNull()) {
|
||||
config.m_transportPacketMagicHeader = obj.value("H4").toString();
|
||||
}
|
||||
if (!obj.value("LuaCodec").isNull()) {
|
||||
config.m_luaCodec = obj.value("LuaCodec").toString();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,6 +130,9 @@ QString InterfaceConfig::toWgConf(const QMap<QString, QString>& extra) const {
|
|||
if (!m_transportPacketMagicHeader.isNull()) {
|
||||
out << "H4 = " << m_transportPacketMagicHeader << "\n";
|
||||
}
|
||||
if (!m_luaCodec.isNull()) {
|
||||
out << "LuaCodec = " << m_luaCodec << "\n";
|
||||
}
|
||||
|
||||
// If any extra config was provided, append it now.
|
||||
for (const QString& key : extra.keys()) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ class InterfaceConfig {
|
|||
QString m_responsePacketMagicHeader;
|
||||
QString m_underloadPacketMagicHeader;
|
||||
QString m_transportPacketMagicHeader;
|
||||
QString m_luaCodec;
|
||||
|
||||
QJsonObject toJson() const;
|
||||
QString toWgConf(
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ void LocalSocketController::activate(const QJsonObject &rawConfig) {
|
|||
json.insert(amnezia::config_key::responsePacketMagicHeader, wgConfig.value(amnezia::config_key::responsePacketMagicHeader));
|
||||
json.insert(amnezia::config_key::underloadPacketMagicHeader, wgConfig.value(amnezia::config_key::underloadPacketMagicHeader));
|
||||
json.insert(amnezia::config_key::transportPacketMagicHeader, wgConfig.value(amnezia::config_key::transportPacketMagicHeader));
|
||||
json.insert(amnezia::config_key::luaCodec, wgConfig.value(amnezia::config_key::luaCodec));
|
||||
} else if (!wgConfig.value(amnezia::config_key::junkPacketCount).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::junkPacketMinSize).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::junkPacketMaxSize).isUndefined()
|
||||
|
|
@ -246,7 +247,8 @@ void LocalSocketController::activate(const QJsonObject &rawConfig) {
|
|||
&& !wgConfig.value(amnezia::config_key::initPacketMagicHeader).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::responsePacketMagicHeader).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::underloadPacketMagicHeader).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::transportPacketMagicHeader).isUndefined()) {
|
||||
&& !wgConfig.value(amnezia::config_key::transportPacketMagicHeader).isUndefined()
|
||||
&& !wgConfig.value(amnezia::config_key::luaCodec).isUndefined()) {
|
||||
json.insert(amnezia::config_key::junkPacketCount, wgConfig.value(amnezia::config_key::junkPacketCount));
|
||||
json.insert(amnezia::config_key::junkPacketMinSize, wgConfig.value(amnezia::config_key::junkPacketMinSize));
|
||||
json.insert(amnezia::config_key::junkPacketMaxSize, wgConfig.value(amnezia::config_key::junkPacketMaxSize));
|
||||
|
|
@ -256,6 +258,7 @@ void LocalSocketController::activate(const QJsonObject &rawConfig) {
|
|||
json.insert(amnezia::config_key::responsePacketMagicHeader, wgConfig.value(amnezia::config_key::responsePacketMagicHeader));
|
||||
json.insert(amnezia::config_key::underloadPacketMagicHeader, wgConfig.value(amnezia::config_key::underloadPacketMagicHeader));
|
||||
json.insert(amnezia::config_key::transportPacketMagicHeader, wgConfig.value(amnezia::config_key::transportPacketMagicHeader));
|
||||
json.insert(amnezia::config_key::luaCodec, wgConfig.value(amnezia::config_key::luaCodec));
|
||||
}
|
||||
|
||||
write(json);
|
||||
|
|
|
|||
|
|
@ -131,6 +131,9 @@ bool WireguardUtilsLinux::addInterface(const InterfaceConfig& config) {
|
|||
if (!config.m_transportPacketMagicHeader.isEmpty()) {
|
||||
out << "h4=" << config.m_transportPacketMagicHeader << "\n";
|
||||
}
|
||||
if (!config.m_luaCodec.isEmpty()) {
|
||||
out << "lua_codec=" << config.m_luaCodec << "\n";
|
||||
}
|
||||
|
||||
int err = uapiErrno(uapiCommand(message));
|
||||
if (err != 0) {
|
||||
|
|
|
|||
|
|
@ -129,6 +129,9 @@ bool WireguardUtilsMacos::addInterface(const InterfaceConfig& config) {
|
|||
if (!config.m_transportPacketMagicHeader.isEmpty()) {
|
||||
out << "h4=" << config.m_transportPacketMagicHeader << "\n";
|
||||
}
|
||||
if (!config.m_luaCodec.isEmpty()) {
|
||||
out << "lua_codec=" << config.m_luaCodec << "\n";
|
||||
}
|
||||
|
||||
int err = uapiErrno(uapiCommand(message));
|
||||
if (err != 0) {
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ namespace amnezia
|
|||
constexpr char responsePacketMagicHeader[] = "H2";
|
||||
constexpr char underloadPacketMagicHeader[] = "H3";
|
||||
constexpr char transportPacketMagicHeader[] = "H4";
|
||||
constexpr char luaCodec[] = "LuaCodec";
|
||||
|
||||
constexpr char openvpn[] = "openvpn";
|
||||
constexpr char wireguard[] = "wireguard";
|
||||
|
|
@ -216,6 +217,7 @@ namespace amnezia
|
|||
constexpr char defaultResponsePacketMagicHeader[] = "3288052141";
|
||||
constexpr char defaultTransportPacketMagicHeader[] = "2528465083";
|
||||
constexpr char defaultUnderloadPacketMagicHeader[] = "1766607858";
|
||||
constexpr char defaultLuaCodec[] = "";
|
||||
}
|
||||
|
||||
namespace socks5Proxy
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
FROM amneziavpn/amnezia-wg:latest
|
||||
FROM amneziavpn/euphoria:latest
|
||||
|
||||
LABEL maintainer="AmneziaVPN"
|
||||
|
||||
|
|
|
|||
|
|
@ -23,4 +23,5 @@ H1 = $INIT_PACKET_MAGIC_HEADER
|
|||
H2 = $RESPONSE_PACKET_MAGIC_HEADER
|
||||
H3 = $UNDERLOAD_PACKET_MAGIC_HEADER
|
||||
H4 = $TRANSPORT_PACKET_MAGIC_HEADER
|
||||
LuaCodec = $LUA_CODEC
|
||||
EOF
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ H1 = $INIT_PACKET_MAGIC_HEADER
|
|||
H2 = $RESPONSE_PACKET_MAGIC_HEADER
|
||||
H3 = $UNDERLOAD_PACKET_MAGIC_HEADER
|
||||
H4 = $TRANSPORT_PACKET_MAGIC_HEADER
|
||||
LuaCodec = $LUA_CODEC
|
||||
|
||||
[Peer]
|
||||
PublicKey = $WIREGUARD_SERVER_PUBLIC_KEY
|
||||
|
|
|
|||
|
|
@ -399,6 +399,7 @@ ErrorCode InstallController::getAlreadyInstalledContainers(const ServerCredentia
|
|||
serverConfigMap.value(config_key::underloadPacketMagicHeader);
|
||||
containerConfig[config_key::transportPacketMagicHeader] =
|
||||
serverConfigMap.value(config_key::transportPacketMagicHeader);
|
||||
containerConfig[config_key::luaCodec] = serverConfigMap.value(config_key::luaCodec);
|
||||
} else if (protocol == Proto::Sftp) {
|
||||
stdOut.clear();
|
||||
script = QString("sudo docker inspect --format '{{.Config.Cmd}}' %1").arg(name);
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ bool AwgConfigModel::setData(const QModelIndex &index, const QVariant &value, in
|
|||
case Roles::ServerTransportPacketMagicHeaderRole:
|
||||
m_serverProtocolConfig.insert(config_key::transportPacketMagicHeader, value.toString());
|
||||
break;
|
||||
case Roles::ServerLuaCodecRole:
|
||||
m_serverProtocolConfig.insert(config_key::luaCodec, value.toString());
|
||||
break;
|
||||
}
|
||||
|
||||
emit dataChanged(index, index, QList { role });
|
||||
|
|
@ -76,6 +79,7 @@ QVariant AwgConfigModel::data(const QModelIndex &index, int role) const
|
|||
case Roles::ServerResponsePacketMagicHeaderRole: return m_serverProtocolConfig.value(config_key::responsePacketMagicHeader);
|
||||
case Roles::ServerUnderloadPacketMagicHeaderRole: return m_serverProtocolConfig.value(config_key::underloadPacketMagicHeader);
|
||||
case Roles::ServerTransportPacketMagicHeaderRole: return m_serverProtocolConfig.value(config_key::transportPacketMagicHeader);
|
||||
case Roles::ServerLuaCodecRole: return m_serverProtocolConfig.value(config_key::luaCodec);
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
|
|
@ -114,6 +118,8 @@ void AwgConfigModel::updateModel(const QJsonObject &config)
|
|||
serverProtocolConfig.value(config_key::underloadPacketMagicHeader).toString(protocols::awg::defaultUnderloadPacketMagicHeader);
|
||||
m_serverProtocolConfig[config_key::transportPacketMagicHeader] =
|
||||
serverProtocolConfig.value(config_key::transportPacketMagicHeader).toString(protocols::awg::defaultTransportPacketMagicHeader);
|
||||
m_serverProtocolConfig[config_key::luaCodec] =
|
||||
serverProtocolConfig.value(config_key::luaCodec).toString(protocols::awg::defaultLuaCodec);
|
||||
|
||||
auto lastConfig = m_serverProtocolConfig.value(config_key::last_config).toString();
|
||||
QJsonObject clientProtocolConfig = QJsonDocument::fromJson(lastConfig.toUtf8()).object();
|
||||
|
|
@ -188,6 +194,7 @@ QHash<int, QByteArray> AwgConfigModel::roleNames() const
|
|||
roles[ServerResponsePacketMagicHeaderRole] = "serverResponsePacketMagicHeader";
|
||||
roles[ServerUnderloadPacketMagicHeaderRole] = "serverUnderloadPacketMagicHeader";
|
||||
roles[ServerTransportPacketMagicHeaderRole] = "serverTransportPacketMagicHeader";
|
||||
roles[ServerLuaCodecRole] = "serverLuaCodec";
|
||||
|
||||
return roles;
|
||||
}
|
||||
|
|
@ -217,6 +224,7 @@ AwgConfig::AwgConfig(const QJsonObject &serverProtocolConfig)
|
|||
serverProtocolConfig.value(config_key::underloadPacketMagicHeader).toString(protocols::awg::defaultUnderloadPacketMagicHeader);
|
||||
serverTransportPacketMagicHeader =
|
||||
serverProtocolConfig.value(config_key::transportPacketMagicHeader).toString(protocols::awg::defaultTransportPacketMagicHeader);
|
||||
serverLuaCodec = serverProtocolConfig.value(config_key::luaCodec).toString(protocols::awg::defaultLuaCodec);
|
||||
}
|
||||
|
||||
bool AwgConfig::hasEqualServerSettings(const AwgConfig &other) const
|
||||
|
|
@ -227,7 +235,8 @@ bool AwgConfig::hasEqualServerSettings(const AwgConfig &other) const
|
|||
|| serverInitPacketMagicHeader != other.serverInitPacketMagicHeader
|
||||
|| serverResponsePacketMagicHeader != other.serverResponsePacketMagicHeader
|
||||
|| serverUnderloadPacketMagicHeader != other.serverUnderloadPacketMagicHeader
|
||||
|| serverTransportPacketMagicHeader != other.serverTransportPacketMagicHeader) {
|
||||
|| serverTransportPacketMagicHeader != other.serverTransportPacketMagicHeader
|
||||
|| serverLuaCodec != other.serverLuaCodec) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ struct AwgConfig
|
|||
QString serverResponsePacketMagicHeader;
|
||||
QString serverUnderloadPacketMagicHeader;
|
||||
QString serverTransportPacketMagicHeader;
|
||||
QString serverLuaCodec;
|
||||
|
||||
bool hasEqualServerSettings(const AwgConfig &other) const;
|
||||
bool hasEqualClientSettings(const AwgConfig &other) const;
|
||||
|
|
@ -60,7 +61,8 @@ public:
|
|||
ServerInitPacketMagicHeaderRole,
|
||||
ServerResponsePacketMagicHeaderRole,
|
||||
ServerUnderloadPacketMagicHeaderRole,
|
||||
ServerTransportPacketMagicHeaderRole
|
||||
ServerTransportPacketMagicHeaderRole,
|
||||
ServerLuaCodecRole
|
||||
};
|
||||
|
||||
explicit AwgConfigModel(QObject *parent = nullptr);
|
||||
|
|
|
|||
|
|
@ -316,6 +316,21 @@ PageType {
|
|||
checkEmptyText: true
|
||||
}
|
||||
|
||||
TextFieldWithHeaderType {
|
||||
id: luaCodecTextField
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 16
|
||||
|
||||
headerText: qsTr("Lua Codec")
|
||||
textField.text: serverLuaCodec
|
||||
|
||||
textField.onEditingFinished: {
|
||||
if (textField.text !== serverLuaCodec) {
|
||||
serverLuaCodec = textField.text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BasicButtonType {
|
||||
id: saveRestartButton
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue