chiark / gitweb /
dbus-common: Add helper method to handle no-reply messages
authorColin Walters <walters@verbum.org>
Tue, 30 Oct 2012 19:38:32 +0000 (15:38 -0400)
committerLennart Poettering <lennart@poettering.net>
Tue, 20 Nov 2012 18:12:19 +0000 (19:12 +0100)
commit1a37b9b9043ef83e9900e460a9a1fccced3acf89
tree3db1771012ce53e9e8d79958609bdd857c81b363
parentd23965a64eb5c2c97b839dc2e3e79fc1613994f1
dbus-common: Add helper method to handle no-reply messages

[Tested in latest gnome-ostree; if accepted, I'll look at a followup
 patch which fixes the other dbus_connection_send(reply, ...) calls
 besides logind]

DBus messages can have a flag NO_REPLY associated that means "I don't
need a reply".  This is for efficiency reasons - for one-off requests
that can't return an error, etc.

However, it's up to users to manually check
dbus_message_get_no_reply() from a message.  libdbus will happily send
out a reply if you don't.

Unfortunately, doing so is not just less efficient - it also triggers
a security error, for complex reasons.  This is something that will
eventually be fixed in dbus, but it's also correct to handle it in
client applications.

This new helper API is slightly nicer in that you don't have to pass
NULL to say you don't want a reply serial for your reply.

This patch also tweaks logind to use the API - there are more areas of
the code that need this treatment too.
src/login/logind-dbus.c
src/shared/dbus-common.c
src/shared/dbus-common.h