Service names and object paths

Alberto Mardegan mardy at
Sun Dec 26 08:20:07 PST 2010

Hi all!
   I'm considering implementing a new low-level IPC system, and I'm 
planning it so that most of libdbus APIs could be implemented on top of it.
I'm not new to D-Bus, but I haven't used the low-level API much and I 
have a few doubts. I'd like some kind soul to go through the following 
statements and tell me whether they are correct:

In the same bus (e.g., the session bus):

- object paths are unique

- a D-Bus client can have multiple bus names registered on the same 

- a given bus name can be owned by at most one connection (and therefore 
by at most one client) at a time

- method calls to another client must have a destination field in the 
message, even if the message contains a path field that could be used by 
the D-Bus server to uniquely identify the recipient

- match rules are needed only to enable receiving signals, and to sniff 
method calls meant for other destinations

- method calls are always received by the destination, even if no match 
was set

- if a client registered an object path such as "/com/example/object" 
and three bus names "com.example.object", "com.example.server", 
"org.domain.object" on a connection whose unique name is ":1.1", methods 
on this object will be invoked for all of these messages (coming from 
another client in the same bus):

- a connection cannot release its unique name, not even after having 
registered additional bus names

- when a connection releases any bus names it previously acquired, 
objects registered on the same connections are not released

- when a connection is disconnected, all its bus names are released, and 
the object paths previously registered become available for registration 
by other clients

This is my understanding. Please let me know if I got anything wrong. :-)


-- <- geek in un lingua international!

More information about the dbus mailing list