diff options
Diffstat (limited to 'src/networksettings/connman/qnetworksettingsuseragent_p.cpp')
-rw-r--r-- | src/networksettings/connman/qnetworksettingsuseragent_p.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp index 595092b..e9e8063 100644 --- a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp +++ b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp @@ -46,8 +46,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() @@ -76,8 +82,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(); } @@ -85,11 +92,16 @@ 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); } QT_END_NAMESPACE |