diff --git a/GPClient/gpclient.cpp b/GPClient/gpclient.cpp
index f5cb42c..18dc4ce 100644
--- a/GPClient/gpclient.cpp
+++ b/GPClient/gpclient.cpp
@@ -31,6 +31,7 @@ GPClient::GPClient(QWidget *parent)
vpn = new com::yuezk::qt::GPService("com.yuezk.qt.GPService", "/", QDBusConnection::systemBus(), this);
connect(vpn, &com::yuezk::qt::GPService::connected, this, &GPClient::onVPNConnected);
connect(vpn, &com::yuezk::qt::GPService::disconnected, this, &GPClient::onVPNDisconnected);
+ connect(vpn, &com::yuezk::qt::GPService::error, this, &GPClient::onVPNError);
connect(vpn, &com::yuezk::qt::GPService::logAvailable, this, &GPClient::onVPNLogAvailable);
// Initiallize the context menu of system tray.
@@ -477,6 +478,12 @@ void GPClient::onVPNDisconnected()
}
}
+void GPClient::onVPNError(QString errorMessage)
+{
+ updateConnectionStatus(VpnStatus::disconnected);
+ openMessageBox("Failed to connect", errorMessage);
+}
+
void GPClient::onVPNLogAvailable(QString log)
{
PLOGI << log;
diff --git a/GPClient/gpclient.h b/GPClient/gpclient.h
index a993a19..45ca86d 100644
--- a/GPClient/gpclient.h
+++ b/GPClient/gpclient.h
@@ -45,6 +45,7 @@ private slots:
void onVPNConnected();
void onVPNDisconnected();
+ void onVPNError(QString errorMessage);
void onVPNLogAvailable(QString log);
private:
diff --git a/GPService/gpservice.cpp b/GPService/gpservice.cpp
index 8dcc009..04d018f 100644
--- a/GPService/gpservice.cpp
+++ b/GPService/gpservice.cpp
@@ -99,7 +99,8 @@ void GPService::connect(QString server, QString username, QString passwd, QStrin
QString bin = findBinary();
if (bin == nullptr) {
- log("Could not found openconnect binary, make sure openconnect is installed, exiting.");
+ log("Could not find openconnect binary, make sure openconnect is installed, exiting.");
+ emit error("The OpenConect CLI was not found, make sure it has been installed!");
return;
}
diff --git a/GPService/gpservice.h b/GPService/gpservice.h
index bd8afb7..63c4e5a 100644
--- a/GPService/gpservice.h
+++ b/GPService/gpservice.h
@@ -31,6 +31,7 @@ public:
signals:
void connected();
void disconnected();
+ void error(QString errorMessage);
void logAvailable(QString log);
public slots:
diff --git a/GPService/gpservice.xml b/GPService/gpservice.xml
index 202573d..9a9b8e8 100644
--- a/GPService/gpservice.xml
+++ b/GPService/gpservice.xml
@@ -8,6 +8,9 @@
+
+
+