Hi Andrew, On 04/14/2016 07:34 PM, Andrew Zaborowski wrote: > The main reason to do that is that systemd thinks it's an error and will > ignore received messages with a dbus1-like signature field in the > header. > --- > ell/dbus-message.c | 13 +++---------- > 1 file changed, 3 insertions(+), 10 deletions(-) > > diff --git a/ell/dbus-message.c b/ell/dbus-message.c > index 00d9838..a409e53 100644 > --- a/ell/dbus-message.c > +++ b/ell/dbus-message.c > @@ -972,7 +972,7 @@ static void build_header(struct l_dbus_message *message, const char *signature) > message->sender = NULL; > } > > - if (signature[0] != '\0') > + if (signature[0] != '\0' && !gvariant) > add_field(builder, driver, DBUS_MESSAGE_FIELD_SIGNATURE, > "g", signature); > > @@ -1201,13 +1201,9 @@ static bool append_arguments(struct l_dbus_message *message, > if (strcmp(signature, generated_signature)) > return false; > > - l_free(generated_signature); > - > build_header(message, signature); > message->sealed = true; > - > - get_header_field(message, DBUS_MESSAGE_FIELD_SIGNATURE, 'g', > - &message->signature); > + message->signature = generated_signature; Are you forgetting to set signature_free? > > return true; > > @@ -1932,10 +1928,7 @@ LIB_EXPORT struct l_dbus_message *l_dbus_message_builder_finalize( > > build_header(builder->message, generated_signature); > builder->message->sealed = true; > - > - get_header_field(builder->message, DBUS_MESSAGE_FIELD_SIGNATURE, 'g', > - &builder->message->signature); > - l_free(generated_signature); > + builder->message->signature = generated_signature; > Are you forgetting to set signature_free? > return builder->message; > } > Regards, -Denis