feature/page-home-split-tunneling (#540)

Added split tunneling button on home page
This commit is contained in:
Nethius 2024-02-21 18:27:27 +07:00 committed by GitHub
parent 21fdf02921
commit 61abf74b2d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 187 additions and 4 deletions

View file

@ -577,3 +577,18 @@ void ServersModel::setProcessedServerData(const QString roleString, const QVaria
}
bool ServersModel::isDefaultServerDefaultContainerHasSplitTunneling()
{
auto server = m_servers.at(m_defaultServerIndex).toObject();
auto defaultContainer = ContainerProps::containerFromString(server.value(config_key::defaultContainer).toString());
auto containerConfig = server.value(config_key::containers).toArray().at(defaultContainer).toObject();
auto protocolConfig = containerConfig.value(ContainerProps::containerTypeToString(defaultContainer)).toObject();
if (defaultContainer == DockerContainer::Awg || defaultContainer == DockerContainer::WireGuard) {
return !(protocolConfig.value(config_key::last_config).toString().contains("AllowedIPs = 0.0.0.0/0, ::/0"));
} else if (defaultContainer == DockerContainer::Cloak || defaultContainer == DockerContainer::OpenVpn || defaultContainer == DockerContainer::ShadowSocks) {
return !(protocolConfig.value(config_key::last_config).toString().contains("redirect-gateway"));
}
return false;
}