Performance of DBUS with multiple nodes

John (J5) Palmieri johnp at redhat.com
Thu Mar 29 08:20:31 PDT 2007


On Thu, 2007-03-29 at 13:46 +0000, Jacques Guillou wrote:
> Thanks for your answer.
> If the daemon doesn't keep any introspection data, I guess that also
> means it doesn't check  message signatures against the corresponding
> introspection data, right ?

Correct

> So you can call a method with "wrong" parameter types without being
> rejected by the daemon (probably the service itself will fail
> somehow) ? 

The service needs to handle this and send back a type error.

> But if you try to extract an integer from a message which actually
> contains a string, you will get an error, probably by the binding and
> not by the daemon ?

If you are using libdbus you have to specify what type you are expecting
when demarshaling and libdbus will return an error if the type does not
match.  Bindings handle this differently depending on how they marshal
values.

> So the daemon doesn't perform any check on the content of the
> messages, does it ? 

It checks that they are valid types and that the message is not altered
in some way which make it an invalid D-Bus message.  We also check
against security profiles which are mostly turned off on the session
bus.

Note on your original question.  HAL exports a different node or object
path for each device and sub device on the system.

-- 
John (J5) Palmieri <johnp at redhat.com>



More information about the dbus mailing list