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;
}
/* 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) {