summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusabstractinterface.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-07-23 11:18:11 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-07-23 11:18:11 +0200
commit084c5b3db794af1ce86b2b17455d9be5e64baebe (patch)
tree46d29a7b89ff251c07b6fdd59c57e30f14baa64a /src/dbus/qdbusabstractinterface.cpp
parentf4a0d6d2494d1dd41cd5b854a48b435120714d32 (diff)
parent54987c6bf55b159d3ddb79461439700f6e0111f9 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
Diffstat (limited to 'src/dbus/qdbusabstractinterface.cpp')
-rw-r--r--src/dbus/qdbusabstractinterface.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp
index 53def1beb6..0b584963ee 100644
--- a/src/dbus/qdbusabstractinterface.cpp
+++ b/src/dbus/qdbusabstractinterface.cpp
@@ -288,7 +288,8 @@ QDBusAbstractInterface::QDBusAbstractInterface(QDBusAbstractInterfacePrivate &d,
if (d.isValid &&
d.connection.isConnected()
&& !d.service.isEmpty()
- && !d.service.startsWith(QLatin1Char(':')))
+ && !d.service.startsWith(QLatin1Char(':'))
+ && d.connectionPrivate()->mode != QDBusConnectionPrivate::PeerMode)
d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service
QString(), // path
QLatin1String(DBUS_INTERFACE_DBUS), // interface
@@ -313,7 +314,8 @@ QDBusAbstractInterface::QDBusAbstractInterface(const QString &service, const QSt
if (d_func()->isValid &&
d_func()->connection.isConnected()
&& !service.isEmpty()
- && !service.startsWith(QLatin1Char(':')))
+ && !service.startsWith(QLatin1Char(':'))
+ && d_func()->connectionPrivate()->mode != QDBusConnectionPrivate::PeerMode)
d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service
QString(), // path
QLatin1String(DBUS_INTERFACE_DBUS), // interface
@@ -340,7 +342,13 @@ QDBusAbstractInterface::~QDBusAbstractInterface()
*/
bool QDBusAbstractInterface::isValid() const
{
- return !d_func()->currentOwner.isEmpty();
+ Q_D(const QDBusAbstractInterface);
+ /* We don't retrieve the owner name for peer connections */
+ if (d->connectionPrivate() && d->connectionPrivate()->mode == QDBusConnectionPrivate::PeerMode) {
+ return d->isValid;
+ } else {
+ return !d->currentOwner.isEmpty();
+ }
}
/*!