on xenial help sign in
Fix racy start of AccountsService
7d72d31Michael Terry
plugins/AccountsService/AccountsService.cpp+5−1
@@ -18,6 +18,7 @@
18
18
19#include "AccountsService.h"
19#include "AccountsService.h"
20#include <QtDBus/QDBusConnection>
20#include <QtDBus/QDBusConnection>
21+#include <QtDBus/QDBusConnectionInterface>
21#include <QtDBus/QDBusMessage>
22#include <QtDBus/QDBusMessage>
22#include <QtDBus/QDBusVariant>
23#include <QtDBus/QDBusVariant>
23
24
@@ -26,10 +27,13 @@ AccountsService::AccountsService(QObject* parent)
26 accounts_manager(NULL),
27 accounts_manager(NULL),
27 users()
28 users()
28{
29{
30+ auto connection = QDBusConnection::SM_BUSNAME();
31+ auto interface = connection.interface();
32+ interface->startService("org.freedesktop.Accounts");
29 accounts_manager = new QDBusInterface("org.freedesktop.Accounts",
33 accounts_manager = new QDBusInterface("org.freedesktop.Accounts",
30 "/org/freedesktop/Accounts",
34 "/org/freedesktop/Accounts",
31 "org.freedesktop.Accounts",
35 "org.freedesktop.Accounts",
32− QDBusConnection::SM_BUSNAME(), this);
36+ connection, this);
33}
37}
34
38
35QVariant AccountsService::getUserProperty(const QString &user, const QString &property)
39QVariant AccountsService::getUserProperty(const QString &user, const QString &property)