Feature Notes for Major Revisions

This page lists the major changes that happened between different major versions of D-Bus.

1.0.x to 1.2.x (including 1.1.20)

Features

The system bus now supports starting services on demand. This uses a setuid helper program because system bus daemon runs as a nobody user, while services it launches may need to run as a different user.

A design doc is available in doc/system-activation.txt

The TCP address format has been enhanced, such that TCP may be actually usable.

The dbus-daemon man page describes the new elements in the address format.

Support ANONYMOUS mechanism for authentication, which allows a client to authenticate as nobody in particular

The ANONYMOUS support means you can now use D-Bus (without a bus daemon) as a protocol for a network service provided to anonymous Internet or LAN clients.

Autolaunched busses now save their parameters in X11 if possible making them behave closer to busses launched through the normal mechanisms

inotify is now the default backend for watching configuration file changes

Better thread support.

The bus daemon now generates a globally-unique ID for itself.

Use this as a unique ID for a user's session, for example.

Support for message serialization added for use with external transports like TUBES!!!

Better eavesdropping support now picks up reply messages for debugging

Library API additions

dbus_connection_set_allow_anonymous() - allow the message stream to begin if the client auths as anonymous (otherwise, the client will be dropped unless they auth as a user).

dbus_watch_get_unix_fd() - replaces dbus_watch_get_fd

dbus_watch_get_socket() - replaces dbus_watch_get_fd

dbus_server_get_id() - available to access the unique ID of a particular address

dbus_connection_get_server_id() - available to access the unique ID of a particular address

dbus_message_marshal() - serializes a message into a byte array

dbus_message_demarshal() - de-serializes a byte array into a message

Library API deprecations

dbus_watch_get_fd() - had unclear cross-platform semantics

Protocol additions

Argument path matching of the type arg0path='/aa/bb/' is now supported