aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Lassieur <clement@lassieur.org>2018-11-10 15:14:28 +0100
committerClément Lassieur <clement@lassieur.org>2018-11-10 19:12:14 +0100
commit8d9bb4b4d05a20bef1cf7b1da2b1c5fb05f9b071 (patch)
tree33d9e068d8d64e1d03213edc431aa02088e0a481
parent005ec8d09c6b8f22457fad330c30ff0ccf495e34 (diff)
downloadguix-8d9bb4b4d05a20bef1cf7b1da2b1c5fb05f9b071.tar
guix-8d9bb4b4d05a20bef1cf7b1da2b1c5fb05f9b071.tar.gz
services: dovecot: Allow to set 'client-limit'.
* doc/guix.texi (Mail Services): Update accordingly. * gnu/services/mail.scm (service-configuration)[client-limit]: New field. (dovecot-configuration)[services]: Set 'client-limit' to its correct default value.
-rw-r--r--doc/guix.texi10
-rw-r--r--gnu/services/mail.scm27
2 files changed, 32 insertions, 5 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 441b65bcaf..d4178ce9ea 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14349,6 +14349,16 @@ Defaults to @samp{#t}.
@end deftypevr
+@deftypevr {@code{service-configuration} parameter} non-negative-integer client-limit
+Maximum number of simultaneous client connections per process. Once
+this number of connections is received, the next incoming connection
+will prompt Dovecot to spawn another process. If set to 0,
+@code{default-client-limit} is used instead.
+
+Defaults to @samp{0}.
+
+@end deftypevr
+
@deftypevr {@code{service-configuration} parameter} non-negative-integer service-count
Number of connections to handle before starting a new process.
Typically the only useful values are 0 (unlimited) or 1. 1 is more
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 573efa0433..abc1c15cfe 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@@ -290,6 +290,12 @@ the section name.")
"Listeners for the service. A listener is either an
@code{unix-listener-configuration}, a @code{fifo-listener-configuration}, or
an @code{inet-listener-configuration}.")
+ (client-limit
+ (non-negative-integer 0)
+ "Maximum number of simultaneous client connections per process. Once this
+number of connections is received, the next incoming connection will prompt
+Dovecot to spawn another process. If set to 0, @code{default-client-limit} is
+used instead.")
(service-count
(non-negative-integer 1)
"Number of connections to handle before starting a new process.
@@ -475,6 +481,7 @@ complex, customize the address and port fields of the
(list
(service-configuration
(kind "imap-login")
+ (client-limit 0)
(listeners
(list
(inet-listener-configuration (protocol "imap") (port 143) (ssl? #f))
@@ -487,10 +494,15 @@ complex, customize the address and port fields of the
(inet-listener-configuration (protocol "pop3s") (port 995) (ssl? #t)))))
(service-configuration
(kind "lmtp")
+ (client-limit 1)
(listeners
(list (unix-listener-configuration (path "lmtp") (mode "0666")))))
- (service-configuration (kind "imap"))
- (service-configuration (kind "pop3"))
+ (service-configuration
+ (kind "imap")
+ (client-limit 1))
+ (service-configuration
+ (kind "pop3")
+ (client-limit 1))
(service-configuration (kind "auth")
;; In what could be taken to be a bug, the default value of 1 for
;; service-count makes it so that a PAM auth worker can't fork off
@@ -501,10 +513,15 @@ complex, customize the address and port fields of the
;; is the default for all other services. As a hack, bump this value to
;; 30.
(service-count 30)
+ (client-limit 0)
(listeners
(list (unix-listener-configuration (path "auth-userdb")))))
- (service-configuration (kind "auth-worker"))
- (service-configuration (kind "dict")
+ (service-configuration
+ (kind "auth-worker")
+ (client-limit 1))
+ (service-configuration
+ (kind "dict")
+ (client-limit 1)
(listeners (list (unix-listener-configuration (path "dict")))))))
"List of services to enable. Available services include @samp{imap},
@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and