Handle unix signals

This commit is contained in:
Kevin Yue
2020-02-15 23:37:30 +08:00
parent 7fa8357a1c
commit 704554d3a5
6 changed files with 264 additions and 3 deletions

View File

@@ -61,6 +61,16 @@ GPService::GPService(QObject *parent)
QObject::connect(openconnect, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, &GPService::onProcessFinished);
}
void GPService::quit()
{
if (openconnect->state() == QProcess::NotRunning) {
exit(0);
} else {
aboutToQuit = true;
openconnect->terminate();
}
}
void GPService::connect(QString server, QString username, QString passwd)
{
if (status() != QProcess::NotRunning) {
@@ -139,6 +149,10 @@ void GPService::onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
log("Openconnect process exited with code " + QString::number(exitCode) + " and exit status " + QVariant::fromValue(exitStatus).toString());
emit disconnected();
if (aboutToQuit) {
exit(0);
};
}
void GPService::log(QString msg)