From b007626897e73603dd57d31f83b53eaafd89f13e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <Werkov@users.noreply.github.com> Date: Fri, 23 Jun 2017 02:26:04 +0200 Subject: [PATCH] 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. --- src/core/unit.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/unit.c b/src/core/unit.c index 1919278301..db4934a82f 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -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);