daf at rhydd.org
Thu Mar 22 21:16:41 PDT 2007
Ar 23/03/2007 am 00:02, ysgrifennodd Havoc Pennington:
> Dafydd Harries wrote:
> >I'm working on implementing a D-Bus based RPC mechanism for One Laptop Per
> >Child activities. It works by forwarding messages it receives between a
> >unix socket and the network. In order to route messages efficiently, I
> >need to
> >be able to examine the recipient address of outgoing messages, which
> >demarshalling the message. libdbus doesn't currently provide any API for
> >how would people recommend I do this?
> I'm not sure I understand what you mean, maybe try rephrasing?
> dbus_message_get_destination() should give you the recipient's bus name.
> Maybe if you clarify more what a D-Bus based RPC mechanism is and what
> your layer is doing on top of what libdbus does.
I'll try to elaborate. The goal is to allow the OLPC activities to make D-Bus
calls over the network, without having to understand how the D-Bus messages
are transmitted. Hence my service should act like a normal bus service,
listening on a local unix socket, except that messages sent over that socket
are sent to the network, and messages received over that socket have come over
When I receive a message on the local unix socket I need to
- validate the sender field in the message header, or add one if it's not
- extract the destination field in the message header, so I know where to
send it to
Doing these things entail demarshalling the message, examining it, possibly
modifying it, and marshalling it. As far as I can tell, this is not possible
with the current libdbus API. If libdbus' API were to be extended to allow
this, how would you propose it be done?
More information about the dbus