summaryrefslogtreecommitdiffstats
path: root/src/dbus
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2011-06-21 19:14:01 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2011-06-23 11:03:47 (GMT)
commit59bd3bcd961fb3198dc9ba24996f7f9af67aeda3 (patch)
tree22bb06bd8f88513c0e64b56557d33b6445eee05b /src/dbus
parent45d2d36c9dbcbce403c78838ea52acd1ab111b68 (diff)
downloadQt-59bd3bcd961fb3198dc9ba24996f7f9af67aeda3.zip
Qt-59bd3bcd961fb3198dc9ba24996f7f9af67aeda3.tar.gz
Qt-59bd3bcd961fb3198dc9ba24996f7f9af67aeda3.tar.bz2
Add a function that returns the D-Bus local machine ID
Reviewed-by: Lars Knoll
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/qdbus_symbols_p.h2
-rw-r--r--src/dbus/qdbusconnection.cpp21
-rw-r--r--src/dbus/qdbusconnection.h2
3 files changed, 25 insertions, 0 deletions
diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h
index 8b46e6a..a59c08a 100644
--- a/src/dbus/qdbus_symbols_p.h
+++ b/src/dbus/qdbus_symbols_p.h
@@ -301,6 +301,8 @@ DEFINEFUNC(void , dbus_get_version , (int *major_version_p,
int *minor_version_p,
int *micro_version_p),
(major_version_p, minor_version_p, micro_version_p), )
+DEFINEFUNC(char* , dbus_get_local_machine_id , (void), (), return)
+
/* dbus-pending-call.h */
DEFINEFUNC(dbus_bool_t , dbus_pending_call_set_notify, (DBusPendingCall *pending,
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 6628ca3..94989f5 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -1123,6 +1123,27 @@ void QDBusConnectionPrivate::setBusService(const QDBusConnection &connection)
}
/*!
+ \since 4.8
+ Returns the local machine ID as known to the D-Bus system. Each
+ node or host that runs D-Bus has a unique identifier that can be
+ used to distinguish it from other hosts if they are sharing
+ resources like the filesystem.
+
+ Note that the local machine ID is not guaranteed to be persistent
+ across boots of the system, so this identifier should not be
+ stored in persistent storage (like the filesystem). It is
+ guaranteed to remain constant only during the lifetime of this
+ boot session.
+*/
+QByteArray QDBusConnection::localMachineId()
+{
+ char *dbus_machine_id = q_dbus_get_local_machine_id();
+ QByteArray result = dbus_machine_id;
+ q_dbus_free(dbus_machine_id);
+ return result;
+}
+
+/*!
\namespace QDBus
\inmodule QtDBus
diff --git a/src/dbus/qdbusconnection.h b/src/dbus/qdbusconnection.h
index 19418d6..4bdd055 100644
--- a/src/dbus/qdbusconnection.h
+++ b/src/dbus/qdbusconnection.h
@@ -176,6 +176,8 @@ public:
static void disconnectFromBus(const QString &name);
static void disconnectFromPeer(const QString &name);
+ static QByteArray localMachineId();
+
static QDBusConnection sessionBus();
static QDBusConnection systemBus();