From bca5505839c33549040c2ed22e751ba9edf81728 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Sun, 25 Aug 2024 23:30:47 +0200 Subject: [PATCH] core/socket: refuse MaxConnection=0 for Accept=no sockets too This makes no sense at all, and we already refuse such setting for Accept=yes sockets. I see no reason not to extend this to Accept=no ones. --- src/core/socket.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/socket.c b/src/core/socket.c index 3c866cee935..88c92876a14 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -410,12 +410,12 @@ static int socket_verify(Socket *s) { if (!s->ports) return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(ENOEXEC), "Unit has no Listen setting (ListenStream=, ListenDatagram=, ListenFIFO=, ...). Refusing."); + if (s->max_connections <= 0) + return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(ENOEXEC), "MaxConnection= setting too small. Refusing."); + if (s->accept && have_non_accept_socket(s)) return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(ENOEXEC), "Unit configured for accepting sockets, but sockets are non-accepting. Refusing."); - if (s->accept && s->max_connections <= 0) - return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(ENOEXEC), "MaxConnection= setting too small. Refusing."); - if (s->accept && UNIT_ISSET(s->service)) return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(ENOEXEC), "Explicit service configuration for accepting socket units not supported. Refusing.");