chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-bus: properly match ID changes
[elogind.git]
/
src
/
libelogind
/
sd-bus
/
bus-control.c
diff --git
a/src/libelogind/sd-bus/bus-control.c
b/src/libelogind/sd-bus/bus-control.c
index 526e1aa89ff750c5becd6095321cd013d3a7dacc..99115d5e492f4157ee3722bc51a4e60131d63b8a 100644
(file)
--- a/
src/libelogind/sd-bus/bus-control.c
+++ b/
src/libelogind/sd-bus/bus-control.c
@@
-1187,6
+1187,8
@@
static int add_name_change_match(sd_bus *bus,
* match against added ids */
if (!old_owner || old_owner[0] == 0) {
item->type = KDBUS_ITEM_ID_ADD;
* match against added ids */
if (!old_owner || old_owner[0] == 0) {
item->type = KDBUS_ITEM_ID_ADD;
+ if (!isempty(new_owner))
+ item->id_change.id = new_owner_id;
r = ioctl(bus->input_fd, KDBUS_CMD_MATCH_ADD, m);
if (r < 0)
r = ioctl(bus->input_fd, KDBUS_CMD_MATCH_ADD, m);
if (r < 0)
@@
-1197,6
+1199,8
@@
static int add_name_change_match(sd_bus *bus,
* match against removed ids */
if (!new_owner || new_owner[0] == 0) {
item->type = KDBUS_ITEM_ID_REMOVE;
* match against removed ids */
if (!new_owner || new_owner[0] == 0) {
item->type = KDBUS_ITEM_ID_REMOVE;
+ if (!isempty(old_owner))
+ item->id_change.id = old_owner_id;
r = ioctl(bus->input_fd, KDBUS_CMD_MATCH_ADD, m);
if (r < 0)
r = ioctl(bus->input_fd, KDBUS_CMD_MATCH_ADD, m);
if (r < 0)