Request name question

Havoc Pennington hp at redhat.com
Sun Nov 27 14:32:19 PST 2005


On Sun, 2005-11-27 at 19:15 -0300, Andre Magalhaes wrote:
> I didn´t know about this :). What is the name the bus assigns for the
> clients? Is it unique for each client. If so how can i know what is
> this name when i want to send a message to the client (the service
> name used to send a message). If not (the service name is the same for
> all clients) we can just change the path to send a message.

The bus assigns each client a unique name that is never re-used during 
the lifetime of the bus. This name is just an arbitrary string
(right now it looks like ":1-20" for example)

You can get this name from any message you receive from another app, it
will be in the sender field of the message.

Because this name is never re-used and cannot be spoofed, you can be
sure that when the client disconnects you will get an error when you
send to it. With a well-known name like "org.maemo.Tapioca.Client"
you may accidentally send messages to a different client from the one
you expected (because the name owner changes)

> Each client subscribes to the daemon and when the daemon receives a
> message specific to that client it sends it directly to the correct
> client. eg.: when the daemon receives a call for a specific client, it
> just sends the incoming call message to this client. When the client
> doesn´t want to receive more messages, it sends a unsubscribe message
> to the daemon. I am sure this is not the best way to do it, but we
> tried a lot of different configurations and this was one that works
> ;).

I would think you could just use the same object path for all clients,
and the unique bus name for each client. I don't think you need a
well-known name for your clients at all, do you? i.e. the 
"org.maemo.Tapioca.Client" does not seem needed to me.

Havoc




More information about the dbus mailing list