1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 16:59:03 +03:00

service: add dependencies on configured sockets

This commit is contained in:
Lennart Poettering 2012-01-06 19:23:03 +01:00
parent 6342c8eaaf
commit 73aa0c00df

View File

@ -1108,6 +1108,22 @@ static int service_add_default_dependencies(Service *s) {
return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
}
static int service_add_socket_dependencies(Service *s) {
Iterator i;
Unit *u;
int r;
/* Make sure we pull in all explicitly configured sockets */
SET_FOREACH(u, s->configured_sockets, i) {
r = unit_add_two_dependencies(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, u, true);
if (r < 0)
return r;
}
return 0;
}
static void service_fix_output(Service *s) {
assert(s);
@ -1181,6 +1197,12 @@ static int service_load(Unit *u) {
if ((r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_REQUIRES, SPECIAL_DBUS_SOCKET, NULL, true)) < 0)
return r;
if (!set_isempty(s->configured_sockets)) {
r = service_add_socket_dependencies(s);
if (r < 0)
return r;
}
if (s->meta.default_dependencies)
if ((r = service_add_default_dependencies(s)) < 0)
return r;