summaryrefslogtreecommitdiffstats
path: root/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings/connman/qnetworksettingsuseragent_p.cpp')
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
index 4d6e10b..ede5095 100644
--- a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
@@ -44,8 +44,14 @@ QNetworkSettingsUserAgentPrivate::QNetworkSettingsUserAgentPrivate(QNetworkSetti
void QNetworkSettingsUserAgentPrivate::cancel()
{
// handle method call net.connman.Agent.Cancel
+ if (!m_pendingReply)
+ return;
+
m_pendingReply = false;
- QMetaObject::invokeMethod(parent(), "Cancel");
+ QDBusMessage errorMessage = m_pendingMessage.createErrorReply(
+ QStringLiteral("net.connman.Agent.Error.Canceled"),
+ QStringLiteral(""));
+ QDBusConnection::systemBus().send(errorMessage);
}
void QNetworkSettingsUserAgentPrivate::release()
@@ -74,8 +80,9 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath
Q_UNUSED(path);
Q_UNUSED(params);
msg.setDelayedReply(true);
- m_reply = msg.createReply();
+
m_pendingReply = true;
+ m_pendingMessage = msg;
emit q->showUserCredentialsInput();
return QVariantMap();
}
@@ -83,9 +90,14 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath
void QNetworkSettingsUserAgentPrivate::setPassphrase(const QString& passphrase)
{
m_passphrase = passphrase;
+ if (!m_pendingReply)
+ return;
+
QVariantMap response;
response[PropertyPassphrase] = m_passphrase;
- m_reply << response;
+
+ QDBusMessage reply = m_pendingMessage.createReply();
+ reply << response;
m_pendingReply = false;
- QDBusConnection::systemBus().send(m_reply);
+ QDBusConnection::systemBus().send(reply);
}