X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsocket.c;h=01af34c1052585736dcd89406bdb874f2663c077;hb=4fe60156fc45e34c7bcba4779123e15620532dff;hp=80adf16890a78ad3c14ad0cc3f8c9d11175d5f88;hpb=7a22745ac3c267edf89a23a920a28d86df5d0f9a;p=elogind.git diff --git a/src/socket.c b/src/socket.c index 80adf1689..01af34c10 100644 --- a/src/socket.c +++ b/src/socket.c @@ -774,8 +774,10 @@ static int socket_open_fds(Socket *s) { return r; if (s->service && s->service->exec_command[SERVICE_EXEC_START]) - if ((r = label_get_socket_label_from_exe(s->service->exec_command[SERVICE_EXEC_START]->path, &label)) < 0) - return r; + if ((r = label_get_socket_label_from_exe(s->service->exec_command[SERVICE_EXEC_START]->path, &label)) < 0) { + if (r != -EPERM) + return r; + } know_label = true; } @@ -1363,15 +1365,19 @@ static int socket_start(Unit *u) { /* Cannot run this without the service being around */ if (s->service) { - if (s->service->meta.load_state != UNIT_LOADED) + if (s->service->meta.load_state != UNIT_LOADED) { + log_error("Socket service %s not loaded, refusing.", s->service->meta.id); return -ENOENT; + } /* If the service is already active we cannot start the * socket */ if (s->service->state != SERVICE_DEAD && s->service->state != SERVICE_FAILED && - s->service->state != SERVICE_AUTO_RESTART) + s->service->state != SERVICE_AUTO_RESTART) { + log_error("Socket service %s already active, refusing.", s->service->meta.id); return -EBUSY; + } #ifdef HAVE_SYSV_COMPAT if (s->service->sysv_path) {