From: Michal Koutný Date: Fri, 23 Jun 2017 00:26:04 +0000 (+0200) Subject: core: dbus: Interpret released names properly (#6175) X-Git-Tag: v234~113 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b007626897e73603dd57d31f83b53eaafd89f13e;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/core/unit.c b/src/core/unit.c index 19192783015..db4934a82f2 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);