free(m->switch_root);
free(m->switch_root_init);
- for (i = 0; i < RLIMIT_NLIMITS; i++)
+ for (i = 0; i < _RLIMIT_MAX; i++)
free(m->rlimit[i]);
assert(hashmap_isempty(m->units_requiring_mounts_for));
}
static int manager_coldplug(Manager *m) {
- int r = 0, q;
+ int r = 0;
Iterator i;
Unit *u;
char *k;
/* Then, let's set up their initial state. */
HASHMAP_FOREACH_KEY(u, k, m->units, i) {
+ int q;
/* ignore aliases */
if (u->id != k)
continue;
- if ((q = unit_coldplug(u)) < 0)
+ q = unit_coldplug(u);
+ if (q < 0)
r = q;
}
* didn't, then let's create the bus now. */
manager_setup_kdbus(m);
manager_connect_bus(m, !!serialization);
+ bus_track_coldplug(m, &m->subscribed, &m->deserialized_subscribed);
/* Third, fire things up! */
q = manager_coldplug(m);
break;
}
+ if (fflush(f)) {
+ log_warning("Failed to flush status stream");
+ break;
+ }
+
log_dump(LOG_INFO, dump);
break;
}
fprintf(f, "kdbus-fd=%i\n", copy);
}
- bus_serialize(m, f);
+ bus_track_serialize(m->subscribed, f);
fputc('\n', f);
m->kdbus_fd = fdset_remove(fds, fd);
}
- } else if (bus_deserialize_item(m, l) == 0)
+ } else if (bus_track_deserialize_item(&m->deserialized_subscribed, l) == 0)
log_debug("Unknown serialization item '%s'", l);
}
argv[4] = NULL;
RUN_WITH_UMASK(0022)
- execute_directory(generator_path, d, (char**) argv);
+ execute_directory(generator_path, d, DEFAULT_TIMEOUT_USEC, (char**) argv);
finish:
trim_generator_dir(m, &m->generator_unit_path);
assert(m);
- for (i = 0; i < RLIMIT_NLIMITS; i++) {
+ for (i = 0; i < _RLIMIT_MAX; i++) {
if (!default_rlimit[i])
continue;
return hashmap_get(m->units_requiring_mounts_for, streq(p, "/") ? "" : p);
}
+
+const char *manager_get_runtime_prefix(Manager *m) {
+
+ return m->running_as == SYSTEMD_SYSTEM ?
+ "/run" :
+ getenv("XDG_RUNTIME_DIR");
+}