Android manifest fix, IPC refactoring

This commit is contained in:
pokamest
2022-02-22 02:08:57 +03:00
parent c233f767f4
commit 912051637a
11 changed files with 58 additions and 31 deletions
+23 -4
View File
@@ -10,7 +10,12 @@
#include <configurators/wireguard_configurator.h>
#include <configurators/vpn_configurator.h>
#include <core/servercontroller.h>
#ifdef AMNEZIA_DESKTOP
#include "ipc.h"
#include "core/ipcclient.h"
#include <protocols/wireguardprotocol.h>
#endif
#ifdef Q_OS_ANDROID
#include "android_controller.h"
@@ -21,9 +26,6 @@
#include <protocols/ios_vpnprotocol.h>
#endif
#include "ipc.h"
#include "core/ipcclient.h"
#include "utils.h"
#include "vpnconnection.h"
@@ -46,6 +48,7 @@ void VpnConnection::onBytesChanged(quint64 receivedBytes, quint64 sentBytes)
void VpnConnection::onConnectionStateChanged(VpnProtocol::VpnConnectionState state)
{
#ifdef AMNEZIA_DESKTOP
if (IpcClient::Interface()) {
if (state == VpnProtocol::Connected){
IpcClient::Interface()->resetIpStack();
@@ -85,7 +88,7 @@ void VpnConnection::onConnectionStateChanged(VpnProtocol::VpnConnectionState sta
}
}
}
#endif
emit connectionStateChanged(state);
}
@@ -96,6 +99,7 @@ const QString &VpnConnection::remoteAddress() const
void VpnConnection::addSitesRoutes(const QString &gw, Settings::RouteMode mode)
{
#ifdef AMNEZIA_DESKTOP
QStringList ips;
QStringList sites;
const QVariantMap &m = m_settings.vpnSites(mode);
@@ -135,6 +139,7 @@ void VpnConnection::addSitesRoutes(const QString &gw, Settings::RouteMode mode)
};
QHostInfo::lookupHost(site, this, cbResolv);
}
#endif
}
QSharedPointer<VpnProtocol> VpnConnection::vpnProtocol() const
@@ -144,6 +149,7 @@ QSharedPointer<VpnProtocol> VpnConnection::vpnProtocol() const
void VpnConnection::addRoutes(const QStringList &ips)
{
#ifdef AMNEZIA_DESKTOP
if (connectionState() == VpnProtocol::Connected && IpcClient::Interface()) {
if (m_settings.routeMode() == Settings::VpnOnlyForwardSites) {
IpcClient::Interface()->routeAddList(m_vpnProtocol->vpnGateway(), ips);
@@ -152,10 +158,12 @@ void VpnConnection::addRoutes(const QStringList &ips)
IpcClient::Interface()->routeAddList(m_vpnProtocol->routeGateway(), ips);
}
}
#endif
}
void VpnConnection::deleteRoutes(const QStringList &ips)
{
#ifdef AMNEZIA_DESKTOP
if (connectionState() == VpnProtocol::Connected && IpcClient::Interface()) {
if (m_settings.routeMode() == Settings::VpnOnlyForwardSites) {
IpcClient::Interface()->routeDeleteList(vpnProtocol()->vpnGateway(), ips);
@@ -164,11 +172,14 @@ void VpnConnection::deleteRoutes(const QStringList &ips)
IpcClient::Interface()->routeDeleteList(m_vpnProtocol->routeGateway(), ips);
}
}
#endif
}
void VpnConnection::flushDns()
{
#ifdef AMNEZIA_DESKTOP
if (IpcClient::Interface()) IpcClient::Interface()->flushDns();
#endif
}
ErrorCode VpnConnection::lastError() const
@@ -349,6 +360,7 @@ void VpnConnection::disconnectFromVpn()
{
// qDebug() << "Disconnect from VPN 1";
#ifdef AMNEZIA_DESKTOP
if (IpcClient::Interface()) {
IpcClient::Interface()->flushDns();
@@ -356,8 +368,15 @@ void VpnConnection::disconnectFromVpn()
QRemoteObjectPendingReply<bool> response = IpcClient::Interface()->clearSavedRoutes();
response.waitForFinished(1000);
}
#endif
if (!m_vpnProtocol.data()) {
emit connectionStateChanged(VpnProtocol::Disconnected);
#ifdef Q_OS_ANDROID
AndroidController::instance()->stop();
#endif
return;
}
m_vpnProtocol.data()->stop();