Miscellaneous
[D-Bus low-level public API]

Miscellaneous API that doesn't cleanly fit anywhere else. More...

Functions

char * dbus_get_local_machine_id (void)
 Obtains the machine UUID of the machine this process is running on.

Detailed Description

Miscellaneous API that doesn't cleanly fit anywhere else.


Function Documentation

char * dbus_get_local_machine_id ( void   ) 

Obtains the machine UUID of the machine this process is running on.

The returned string must be freed with dbus_free().

This UUID is guaranteed to remain the same until the next reboot (unless the sysadmin foolishly changes it and screws themselves). It will usually remain the same across reboots also, but hardware configuration changes or rebuilding the machine could break that.

The idea is that two processes with the same machine ID should be able to use shared memory, UNIX domain sockets, process IDs, and other features of the OS that require both processes to be running on the same OS kernel instance.

The machine ID can also be used to create unique per-machine instances. For example, you could use it in bus names or X selection names.

The machine ID is preferred over the machine hostname, because the hostname is frequently set to "localhost.localdomain" and may also change at runtime.

You can get the machine ID of a remote application by invoking the method GetMachineId from interface org.freedesktop.DBus.Peer.

If the remote application has the same machine ID as the one returned by this function, then the remote application is on the same machine as your application.

The UUID is not a UUID in the sense of RFC4122; the details are explained in the D-Bus specification.

Returns:
a 32-byte-long hex-encoded UUID string, or NULL if insufficient memory

Definition at line 73 of file dbus-misc.c.

References _dbus_get_local_machine_uuid_encoded(), _dbus_string_free(), _dbus_string_init(), _dbus_string_steal_data(), FALSE, and NULL.


Generated on Fri Sep 21 18:12:14 2007 for D-Bus by  doxygen 1.5.1