-static int socket_verify(Socket *s) {
- assert(s);
-
- if (UNIT(s)->load_state != UNIT_LOADED)
- return 0;
-
- if (!s->ports) {
- log_error_unit(UNIT(s)->id,
- "%s lacks Listen setting. Refusing.", UNIT(s)->id);
- return -EINVAL;
- }
-
- if (s->accept && have_non_accept_socket(s)) {
- log_error_unit(UNIT(s)->id,
- "%s configured for accepting sockets, but sockets are non-accepting. Refusing.",
- UNIT(s)->id);
- return -EINVAL;
- }
-
- if (s->accept && s->max_connections <= 0) {
- log_error_unit(UNIT(s)->id,
- "%s's MaxConnection setting too small. Refusing.", UNIT(s)->id);
- return -EINVAL;
- }
-
- if (s->accept && UNIT_DEREF(s->service)) {
- log_error_unit(UNIT(s)->id,
- "Explicit service configuration for accepting sockets not supported on %s. Refusing.",
- UNIT(s)->id);
- return -EINVAL;
- }
-
- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) {
- log_error_unit(UNIT(s)->id,
- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.",
- UNIT(s)->id);
- return -EINVAL;
- }
-
- return 0;
-}
-