mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
Merge pull request #2216 from zonque/nameownerchanged
core: re-sync bus name list after deserializing during daemon-reload
This commit is contained in:
commit
7b8f930ce4
@ -734,7 +734,7 @@ static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bus_list_names(Manager *m, sd_bus *bus) {
|
||||
int manager_sync_bus_names(Manager *m, sd_bus *bus) {
|
||||
_cleanup_strv_free_ char **names = NULL;
|
||||
const char *name;
|
||||
Iterator i;
|
||||
@ -850,7 +850,7 @@ static int bus_setup_api(Manager *m, sd_bus *bus) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to register name: %m");
|
||||
|
||||
r = bus_list_names(m, bus);
|
||||
r = manager_sync_bus_names(m, bus);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -34,6 +34,8 @@ void bus_track_serialize(sd_bus_track *t, FILE *f);
|
||||
int bus_track_deserialize_item(char ***l, const char *line);
|
||||
int bus_track_coldplug(Manager *m, sd_bus_track **t, char ***l);
|
||||
|
||||
int manager_sync_bus_names(Manager *m, sd_bus *bus);
|
||||
|
||||
int bus_foreach_bus(Manager *m, sd_bus_track *subscribed2, int (*send_message)(sd_bus *bus, void *userdata), void *userdata);
|
||||
|
||||
int bus_verify_manage_units_async(Manager *m, sd_bus_message *call, sd_bus_error *error);
|
||||
|
@ -2574,6 +2574,10 @@ int manager_reload(Manager *m) {
|
||||
/* Third, fire things up! */
|
||||
manager_coldplug(m);
|
||||
|
||||
/* Sync current state of bus names with our set of listening units */
|
||||
if (m->api_bus)
|
||||
manager_sync_bus_names(m, m->api_bus);
|
||||
|
||||
assert(m->n_reloading > 0);
|
||||
m->n_reloading--;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user