mirror of
https://github.com/systemd/systemd.git
synced 2026-08-03 22:50:29 +00:00
sd-bus: don't include properties maked as "emit-invalidation" in InterfacesAdded signals
Properties marked this way really shouldn't be sent around willy-nilly, that's what the flag is about, hence exclude it from InterfacesAdded signals (and in fact anything that is a signal).
This commit is contained in:
@@ -774,9 +774,18 @@ static int vtable_append_all_properties(
|
||||
if (v->flags & SD_BUS_VTABLE_HIDDEN)
|
||||
continue;
|
||||
|
||||
/* Let's not include properties marked as "explicit" in any message that contians a generic
|
||||
* dump of properties, but only in those generated as a response to an explicit request. */
|
||||
if (v->flags & SD_BUS_VTABLE_PROPERTY_EXPLICIT)
|
||||
continue;
|
||||
|
||||
/* Let's not include properties marked only for invalidation on change (i.e. in contrast to
|
||||
* those whose new values are included in PropertiesChanges message) in any signals. This is
|
||||
* useful to ensure they aren't included in InterfacesAdded messages. */
|
||||
if (reply->header->type != SD_BUS_MESSAGE_METHOD_RETURN &&
|
||||
FLAGS_SET(v->flags, SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION))
|
||||
continue;
|
||||
|
||||
r = vtable_append_one_property(bus, reply, path, c, v, userdata, error);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user