]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/core/dbus.h
core: re-sync bus name list after deserializing during daemon-reload 2216/head
authorDaniel Mack <daniel@zonque.org>
Tue, 22 Dec 2015 10:37:09 +0000 (11:37 +0100)
committerDaniel Mack <daniel@zonque.org>
Wed, 23 Dec 2015 22:31:35 +0000 (23:31 +0100)
commit8936a5e34dbfa9274348f3fef99f7c9f9327ddf9
tree81f2cf8438bb9ecaaffae9451d8c8cec0f898e87
parenta6cff5d3c0e9a5aef3f1440b089fdb9f30bf444f
core: re-sync bus name list after deserializing during daemon-reload

When the daemon reloads, it doesn not actually give up its DBus connection,
as wrongly stated in an earlier commit. However, even though the bus
connection stays open, the daemon flushes out all its internal state.

Hence, if there is a NameOwnerChanged signal after the flush and before the
deserialization, it cannot be matched against any pending unit.

To fix this, rename bus_list_names() to manager_sync_bus_names() and call
it explicitly at the end of the daemon reload operation.
src/core/dbus.c
src/core/dbus.h
src/core/manager.c