WG/AWG Desktop AllowedIP from plain WG config
This commit is contained in:
parent
32c304dc1b
commit
414a47e2f2
2 changed files with 57 additions and 33 deletions
|
@ -141,36 +141,63 @@ void LocalSocketController::activate(const QJsonObject &rawConfig) {
|
||||||
|
|
||||||
QJsonArray jsAllowedIPAddesses;
|
QJsonArray jsAllowedIPAddesses;
|
||||||
|
|
||||||
if (splitTunnelType == 0 || splitTunnelType == 2) {
|
QJsonArray plainAllowedIP = wgConfig.value(amnezia::config_key::allowed_ips).toArray();
|
||||||
QJsonObject range_ipv4;
|
QJsonArray defaultAllowedIP = QJsonArray::fromStringList(QString("0.0.0.0/0, ::/0").split(","));
|
||||||
range_ipv4.insert("address", "0.0.0.0");
|
|
||||||
range_ipv4.insert("range", 0);
|
|
||||||
range_ipv4.insert("isIpv6", false);
|
|
||||||
jsAllowedIPAddesses.append(range_ipv4);
|
|
||||||
|
|
||||||
QJsonObject range_ipv6;
|
if (plainAllowedIP != defaultAllowedIP) {
|
||||||
range_ipv6.insert("address", "::");
|
// Use AllowedIP list from WG config bacouse of higer priority
|
||||||
range_ipv6.insert("range", 0);
|
|
||||||
range_ipv6.insert("isIpv6", true);
|
|
||||||
jsAllowedIPAddesses.append(range_ipv6);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (splitTunnelType == 1) {
|
for (auto v : plainAllowedIP) {
|
||||||
for (auto v : splitTunnelSites) {
|
QString ipRange = v.toString();
|
||||||
QString ipRange = v.toString();
|
qDebug() << "ipRange " << ipRange;
|
||||||
qDebug() << "ipRange " << ipRange;
|
if (ipRange.split('/').size() > 1){
|
||||||
if (ipRange.split('/').size() > 1){
|
QJsonObject range;
|
||||||
QJsonObject range;
|
range.insert("address", ipRange.split('/')[0]);
|
||||||
range.insert("address", ipRange.split('/')[0]);
|
range.insert("range", atoi(ipRange.split('/')[1].toLocal8Bit()));
|
||||||
range.insert("range", atoi(ipRange.split('/')[1].toLocal8Bit()));
|
range.insert("isIpv6", false);
|
||||||
range.insert("isIpv6", false);
|
jsAllowedIPAddesses.append(range);
|
||||||
jsAllowedIPAddesses.append(range);
|
} else {
|
||||||
} else {
|
QJsonObject range;
|
||||||
QJsonObject range;
|
range.insert("address",ipRange);
|
||||||
range.insert("address",ipRange);
|
range.insert("range", 32);
|
||||||
range.insert("range", 32);
|
range.insert("isIpv6", false);
|
||||||
range.insert("isIpv6", false);
|
jsAllowedIPAddesses.append(range);
|
||||||
jsAllowedIPAddesses.append(range);
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Use APP split tunnel
|
||||||
|
if (splitTunnelType == 0 || splitTunnelType == 2) {
|
||||||
|
QJsonObject range_ipv4;
|
||||||
|
range_ipv4.insert("address", "0.0.0.0");
|
||||||
|
range_ipv4.insert("range", 0);
|
||||||
|
range_ipv4.insert("isIpv6", false);
|
||||||
|
jsAllowedIPAddesses.append(range_ipv4);
|
||||||
|
|
||||||
|
QJsonObject range_ipv6;
|
||||||
|
range_ipv6.insert("address", "::");
|
||||||
|
range_ipv6.insert("range", 0);
|
||||||
|
range_ipv6.insert("isIpv6", true);
|
||||||
|
jsAllowedIPAddesses.append(range_ipv6);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (splitTunnelType == 1) {
|
||||||
|
for (auto v : splitTunnelSites) {
|
||||||
|
QString ipRange = v.toString();
|
||||||
|
qDebug() << "ipRange " << ipRange;
|
||||||
|
if (ipRange.split('/').size() > 1){
|
||||||
|
QJsonObject range;
|
||||||
|
range.insert("address", ipRange.split('/')[0]);
|
||||||
|
range.insert("range", atoi(ipRange.split('/')[1].toLocal8Bit()));
|
||||||
|
range.insert("isIpv6", false);
|
||||||
|
jsAllowedIPAddesses.append(range);
|
||||||
|
} else {
|
||||||
|
QJsonObject range;
|
||||||
|
range.insert("address",ipRange);
|
||||||
|
range.insert("range", 32);
|
||||||
|
range.insert("isIpv6", false);
|
||||||
|
jsAllowedIPAddesses.append(range);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,11 +263,8 @@ QJsonObject ImportController::extractWireGuardConfig(const QString &data)
|
||||||
// return QJsonObject();
|
// return QJsonObject();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
auto allowedIps = configMap.value("AllowedIPs").split(",");
|
QJsonArray allowedIpsJsonArray = QJsonArray::fromStringList(configMap.value("AllowedIPs").split(","));
|
||||||
QJsonArray allowedIpsJsonArray;
|
|
||||||
for (const auto &allowedIp : allowedIps) {
|
|
||||||
allowedIpsJsonArray.append(allowedIp);
|
|
||||||
}
|
|
||||||
lastConfig[config_key::allowed_ips] = allowedIpsJsonArray;
|
lastConfig[config_key::allowed_ips] = allowedIpsJsonArray;
|
||||||
|
|
||||||
QString protocolName = "wireguard";
|
QString protocolName = "wireguard";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue