fix: fixed awg native config import with new junk

This commit is contained in:
vladimir.kuznetsov 2025-07-05 11:01:08 +08:00
parent efdef769aa
commit d4f26b1b68

View file

@ -458,43 +458,38 @@ QJsonObject ImportController::extractWireGuardConfig(const QString &data)
lastConfig[config_key::allowed_ips] = allowedIpsJsonArray; lastConfig[config_key::allowed_ips] = allowedIpsJsonArray;
QString protocolName = "wireguard"; QString protocolName = "wireguard";
if (!configMap.value(config_key::junkPacketCount).isEmpty()
&& !configMap.value(config_key::junkPacketMinSize).isEmpty() const QStringList requiredJunkFields = { config_key::junkPacketCount, config_key::junkPacketMinSize,
&& !configMap.value(config_key::junkPacketMaxSize).isEmpty() config_key::junkPacketMaxSize, config_key::initPacketJunkSize,
&& !configMap.value(config_key::initPacketJunkSize).isEmpty() config_key::responsePacketJunkSize, config_key::initPacketMagicHeader,
&& !configMap.value(config_key::responsePacketJunkSize).isEmpty() config_key::responsePacketMagicHeader, config_key::underloadPacketMagicHeader,
&& !configMap.value(config_key::cookieReplyPacketJunkSize).isEmpty() config_key::transportPacketMagicHeader };
&& !configMap.value(config_key::transportPacketJunkSize).isEmpty()
&& !configMap.value(config_key::initPacketMagicHeader).isEmpty() const QStringList optionalJunkFields = { config_key::cookieReplyPacketJunkSize,
&& !configMap.value(config_key::responsePacketMagicHeader).isEmpty() config_key::transportPacketJunkSize,
&& !configMap.value(config_key::underloadPacketMagicHeader).isEmpty() config_key::specialJunk1,
&& !configMap.value(config_key::transportPacketMagicHeader).isEmpty() config_key::specialJunk2,
&& !configMap.value(config_key::specialJunk1).isEmpty() && !configMap.value(config_key::specialJunk2).isEmpty() config_key::specialJunk3,
&& !configMap.value(config_key::specialJunk3).isEmpty() && !configMap.value(config_key::specialJunk4).isEmpty() config_key::specialJunk4,
&& !configMap.value(config_key::specialJunk5).isEmpty() && !configMap.value(config_key::controlledJunk1).isEmpty() config_key::specialJunk5,
&& !configMap.value(config_key::controlledJunk2).isEmpty() config_key::controlledJunk1,
&& !configMap.value(config_key::controlledJunk3).isEmpty() config_key::controlledJunk2,
&& !configMap.value(config_key::specialHandshakeTimeout).isEmpty()) { config_key::controlledJunk3,
lastConfig[config_key::junkPacketCount] = configMap.value(config_key::junkPacketCount); config_key::specialHandshakeTimeout };
lastConfig[config_key::junkPacketMinSize] = configMap.value(config_key::junkPacketMinSize);
lastConfig[config_key::junkPacketMaxSize] = configMap.value(config_key::junkPacketMaxSize); bool hasAllRequiredFields = std::all_of(requiredJunkFields.begin(), requiredJunkFields.end(),
lastConfig[config_key::initPacketJunkSize] = configMap.value(config_key::initPacketJunkSize); [&configMap](const QString &field) { return !configMap.value(field).isEmpty(); });
lastConfig[config_key::responsePacketJunkSize] = configMap.value(config_key::responsePacketJunkSize); if (hasAllRequiredFields) {
lastConfig[config_key::cookieReplyPacketJunkSize] = configMap.value(config_key::cookieReplyPacketJunkSize); for (const QString &field : requiredJunkFields) {
lastConfig[config_key::transportPacketJunkSize] = configMap.value(config_key::transportPacketJunkSize); lastConfig[field] = configMap.value(field);
lastConfig[config_key::initPacketMagicHeader] = configMap.value(config_key::initPacketMagicHeader); }
lastConfig[config_key::responsePacketMagicHeader] = configMap.value(config_key::responsePacketMagicHeader);
lastConfig[config_key::underloadPacketMagicHeader] = configMap.value(config_key::underloadPacketMagicHeader); for (const QString &field : optionalJunkFields) {
lastConfig[config_key::transportPacketMagicHeader] = configMap.value(config_key::transportPacketMagicHeader); if (!configMap.value(field).isEmpty()) {
lastConfig[config_key::specialJunk1] = configMap.value(config_key::specialJunk1); lastConfig[field] = configMap.value(field);
lastConfig[config_key::specialJunk2] = configMap.value(config_key::specialJunk2); }
lastConfig[config_key::specialJunk3] = configMap.value(config_key::specialJunk3); }
lastConfig[config_key::specialJunk4] = configMap.value(config_key::specialJunk4);
lastConfig[config_key::specialJunk5] = configMap.value(config_key::specialJunk5);
lastConfig[config_key::controlledJunk1] = configMap.value(config_key::controlledJunk1);
lastConfig[config_key::controlledJunk2] = configMap.value(config_key::controlledJunk2);
lastConfig[config_key::controlledJunk3] = configMap.value(config_key::controlledJunk3);
lastConfig[config_key::specialHandshakeTimeout] = configMap.value(config_key::specialHandshakeTimeout);
protocolName = "awg"; protocolName = "awg";
m_configType = ConfigTypes::Awg; m_configType = ConfigTypes::Awg;
} }