How to transmit a D-Bus message with the exact same body?

I'm working on a dbus project where I need to be able to transmit dbus method calls. The idea is:

  • I receive a dbus method call
  • I change the source and destination in order to transmit the message to another object (based on internal logic)
  • The object replies, I take the reply body and I send that back as the reply to the original call

I settled on zbus, but its APIs for creating a message and retrieving a message body seem incompatible (the signature isn't constant so I can't deserialize and reserialize). There also doesn't seem to be a way to change the message header information.

I looked at other crates, but I haven't found any that allow me to do this, which I find a bit weird since I don't think that what I'm doing is that unusual

Any ideas what I should do ?