diff --git a/client/android/AndroidManifest.xml b/client/android/AndroidManifest.xml
index efb46f92..d0e94d39 100644
--- a/client/android/AndroidManifest.xml
+++ b/client/android/AndroidManifest.xml
@@ -78,14 +78,15 @@
-
+
+
diff --git a/client/client.pro b/client/client.pro
index fe501f31..90979584 100644
--- a/client/client.pro
+++ b/client/client.pro
@@ -31,9 +31,7 @@ HEADERS += \
containers/containers_defs.h \
core/defs.h \
core/errorstrings.h \
- core/ipcclient.h \
configurators/openvpn_configurator.h \
- core/privileged_process.h \
core/scripts_registry.h \
core/server_defs.h \
core/servercontroller.h \
@@ -88,9 +86,7 @@ SOURCES += \
configurators/wireguard_configurator.cpp \
containers/containers_defs.cpp \
core/errorstrings.cpp \
- core/ipcclient.cpp \
configurators/openvpn_configurator.cpp \
- core/privileged_process.cpp \
core/scripts_registry.cpp \
core/server_defs.cpp \
core/servercontroller.cpp \
@@ -203,6 +199,8 @@ win32|macx|linux:!android {
DEFINES += AMNEZIA_DESKTOP
HEADERS += \
+ core/ipcclient.h \
+ core/privileged_process.h \
ui/systemtray_notificationhandler.h \
protocols/openvpnprotocol.h \
protocols/openvpnovercloakprotocol.h \
@@ -210,11 +208,16 @@ win32|macx|linux:!android {
protocols/wireguardprotocol.h \
SOURCES += \
+ core/ipcclient.cpp \
+ core/privileged_process.cpp \
ui/systemtray_notificationhandler.cpp \
protocols/openvpnprotocol.cpp \
protocols/openvpnovercloakprotocol.cpp \
protocols/shadowsocksvpnprotocol.cpp \
protocols/wireguardprotocol.cpp \
+
+ REPC_REPLICA += ../ipc/ipc_interface.rep
+ REPC_REPLICA += ../ipc/ipc_process_interface.rep
}
android {
@@ -365,6 +368,4 @@ ios {
}
-REPC_REPLICA += ../ipc/ipc_interface.rep
-!ios: REPC_REPLICA += ../ipc/ipc_process_interface.rep
diff --git a/client/core/ipcclient.cpp b/client/core/ipcclient.cpp
index e4053878..0252ea0f 100644
--- a/client/core/ipcclient.cpp
+++ b/client/core/ipcclient.cpp
@@ -65,7 +65,6 @@ bool IpcClient::init(IpcClient *instance)
QSharedPointer IpcClient::CreatePrivilegedProcess()
{
-#ifndef Q_OS_IOS
if (! Instance()->m_ipcClient || ! Instance()->m_ipcClient->isReplicaValid()) {
qWarning() << "IpcClient::createPrivilegedProcess : IpcClient IpcClient replica is not valid";
return nullptr;
@@ -107,9 +106,6 @@ QSharedPointer IpcClient::CreatePrivilegedProcess()
auto proccessReplica = QSharedPointer(pd->ipcProcess);
return proccessReplica;
-#else
- return QSharedPointer();
-#endif
}
diff --git a/client/core/privileged_process.cpp b/client/core/privileged_process.cpp
index 82a114de..3852236f 100644
--- a/client/core/privileged_process.cpp
+++ b/client/core/privileged_process.cpp
@@ -1,6 +1,5 @@
#include "privileged_process.h"
-#ifndef Q_OS_IOS
PrivilegedProcess::PrivilegedProcess() :
IpcProcessInterfaceReplica()
{
@@ -26,4 +25,3 @@ void PrivilegedProcess::waitForFinished(int msecs)
loop->exec();
}
-#endif // Q_OS_IOS
diff --git a/client/core/privileged_process.h b/client/core/privileged_process.h
index 62829bc5..4d08c043 100644
--- a/client/core/privileged_process.h
+++ b/client/core/privileged_process.h
@@ -3,7 +3,6 @@
#include
-#ifndef Q_OS_IOS
#include "rep_ipc_process_interface_replica.h"
// This class is dangerous - instance of this class casted from base class,
// so it support only functions
@@ -20,11 +19,6 @@ public:
};
-#else // defined Q_OS_IOS
-class IpcProcessInterfaceReplica {};
-class PrivilegedProcess {};
-#endif // Q_OS_IOS
-
#endif // PRIVILEGED_PROCESS_H
diff --git a/client/debug.cpp b/client/debug.cpp
index 8b228932..dfdb15dd 100644
--- a/client/debug.cpp
+++ b/client/debug.cpp
@@ -1,3 +1,4 @@
+#include
#include
#include
#include
@@ -6,12 +7,14 @@
#include
-#include
-
#include "debug.h"
#include "defines.h"
#include "utils.h"
+#ifdef AMNEZIA_DESKTOP
+#include
+#endif
+
QFile Debug::m_file;
QTextStream Debug::m_textStream;
QString Debug::m_logFileName = QString("%1.log").arg(APPLICATION_NAME);
@@ -140,6 +143,7 @@ void Debug::clearLogs()
void Debug::clearServiceLogs()
{
+#ifdef AMNEZIA_DESKTOP
IpcClient *m_IpcClient = new IpcClient;
if (!m_IpcClient->isSocketConnected()) {
@@ -156,6 +160,7 @@ void Debug::clearServiceLogs()
else {
qWarning() << "Error occured cleaning up service logs";
}
+#endif
}
void Debug::cleanUp()
diff --git a/client/ui/pages_logic/ServerSettingsLogic.cpp b/client/ui/pages_logic/ServerSettingsLogic.cpp
index 16efe55b..e15207b7 100644
--- a/client/ui/pages_logic/ServerSettingsLogic.cpp
+++ b/client/ui/pages_logic/ServerSettingsLogic.cpp
@@ -8,6 +8,7 @@
#include "core/errorstrings.h"
#include
+#include
ServerSettingsLogic::ServerSettingsLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent),
diff --git a/client/ui/pages_logic/VpnLogic.cpp b/client/ui/pages_logic/VpnLogic.cpp
index 0c7254b1..ae39f905 100644
--- a/client/ui/pages_logic/VpnLogic.cpp
+++ b/client/ui/pages_logic/VpnLogic.cpp
@@ -1,7 +1,10 @@
+#include
+
#include "VpnLogic.h"
#include "core/errorstrings.h"
#include "vpnconnection.h"
+#include
#include
#include "../uilogic.h"
#include "defines.h"
@@ -239,6 +242,6 @@ void VpnLogic::onConnectWorker(int serverIndex, const ServerCredentials &credent
void VpnLogic::onDisconnect()
{
- set_pushButtonConnectChecked(false);
+ onConnectionStateChanged(VpnProtocol::Disconnected);
emit disconnectFromVpn();
}
diff --git a/client/ui/uilogic.cpp b/client/ui/uilogic.cpp
index f4c79d5d..878facb7 100644
--- a/client/ui/uilogic.cpp
+++ b/client/ui/uilogic.cpp
@@ -30,7 +30,6 @@
#include "core/errorstrings.h"
#include "containers/containers_defs.h"
-#include "protocols/shadowsocksvpnprotocol.h"
#include "ui/qautostart.h"
@@ -136,6 +135,11 @@ UiLogic::~UiLogic()
void UiLogic::initalizeUiLogic()
{
#ifdef Q_OS_ANDROID
+ connect(AndroidController::instance(), &AndroidController::initialized, [this](bool status, bool connected, const QDateTime& connectionDate) {
+ if (connected) {
+ vpnLogic()->onConnectionStateChanged(VpnProtocol::Connected);
+ }
+ });
if (!AndroidController::instance()->initialize()) {
qDebug() << QString("Init failed") ;
emit VpnProtocol::Error;
diff --git a/client/vpnconnection.cpp b/client/vpnconnection.cpp
index 2e55901b..8434da0e 100644
--- a/client/vpnconnection.cpp
+++ b/client/vpnconnection.cpp
@@ -10,7 +10,12 @@
#include
#include
#include
+
+#ifdef AMNEZIA_DESKTOP
+#include "ipc.h"
+#include "core/ipcclient.h"
#include
+#endif
#ifdef Q_OS_ANDROID
#include "android_controller.h"
@@ -21,9 +26,6 @@
#include
#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 VpnConnection::vpnProtocol() const
@@ -144,6 +149,7 @@ QSharedPointer 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 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();
diff --git a/client/vpnconnection.h b/client/vpnconnection.h
index 7a21e7b0..d0dc2135 100644
--- a/client/vpnconnection.h
+++ b/client/vpnconnection.h
@@ -8,9 +8,12 @@
#include "protocols/vpnprotocol.h"
#include "core/defs.h"
-#include "core/ipcclient.h"
#include "settings.h"
+#ifdef AMNEZIA_DESKTOP
+#include "core/ipcclient.h"
+#endif
+
using namespace amnezia;
class VpnConnection : public QObject
@@ -74,8 +77,10 @@ private:
QJsonObject m_vpnConfiguration;
QJsonObject m_routeMode;
QString m_remoteAddress;
- IpcClient *m_IpcClient {nullptr};
+#ifdef AMNEZIA_DESKTOP
+ IpcClient *m_IpcClient {nullptr};
+#endif
};
#endif // VPNCONNECTION_H