core: dbus: Interpret released names properly (#6175)

When a DBus name is released, NameOwnerChanged signal contains an empty string
as new_owner. Commit bbc2908 changed interpretation of the empty string to a
valid name, which is not consistent with values that are sent by dbus-daemon.

As a side effect, this masks symptoms of systemd-logind dbus disconnections
(#2925) by completely restarting it so it can freshly reconnect to dbus.
This commit is contained in:
Michal Koutný 2017-06-23 02:26:04 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 7be1420f44
commit b007626897

View file

@ -2638,6 +2638,9 @@ static int signal_name_owner_changed(sd_bus_message *message, void *userdata, sd
return 0;
}
old_owner = isempty(old_owner) ? NULL : old_owner;
new_owner = isempty(new_owner) ? NULL : new_owner;
if (UNIT_VTABLE(u)->bus_name_owner_change)
UNIT_VTABLE(u)->bus_name_owner_change(u, name, old_owner, new_owner);