X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsocket.c;h=bbb54f6308777388a023174b956f3f3e883b9583;hp=aacf9bed9f1f50f106db3cd78b322461fc689ef8;hb=d9ff321ad9477664c34b81a9dd4fce616e44124e;hpb=20ed3656786a36f58a27901356e67d03cdd6de5e diff --git a/src/socket.c b/src/socket.c index aacf9bed9..bbb54f630 100644 --- a/src/socket.c +++ b/src/socket.c @@ -212,6 +212,11 @@ static int socket_verify(Socket *s) { return -EINVAL; } + if (s->accept && s->service) { + log_error("Explicit service configuration for accepting sockets not supported on %s. Refusing.", s->meta.id); + return -EINVAL; + } + if (s->exec_context.pam_name && s->exec_context.kill_mode != KILL_CONTROL_GROUP) { log_error("%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", s->meta.id); return -EINVAL; @@ -315,8 +320,10 @@ static int socket_load(Unit *u) { if (u->meta.load_state == UNIT_LOADED) { if (have_non_accept_socket(s)) { - if ((r = unit_load_related_unit(u, ".service", (Unit**) &s->service)) < 0) - return r; + + if (!s->service) + if ((r = unit_load_related_unit(u, ".service", (Unit**) &s->service)) < 0) + return r; if ((r = unit_add_dependency(u, UNIT_BEFORE, UNIT(s->service), true)) < 0) return r;