]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mbox: Fail at startup if service doesn't have client_limit=1.
authorTimo Sirainen <tss@iki.fi>
Thu, 18 Feb 2010 05:13:29 +0000 (07:13 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 18 Feb 2010 05:13:29 +0000 (07:13 +0200)
--HG--
branch : HEAD

src/lib-storage/index/mbox/Makefile.am
src/lib-storage/index/mbox/mbox-storage.c

index a69b2722aebb2fbb5ceb3a347a88106168dea98b..7d4c842e6ab1fb6180081caa48803a407684f879 100644 (file)
@@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libstorage_mbox.la
 AM_CPPFLAGS = \
        -I$(top_srcdir)/src/lib \
        -I$(top_srcdir)/src/lib-settings \
+       -I$(top_srcdir)/src/lib-master \
        -I$(top_srcdir)/src/lib-mail \
        -I$(top_srcdir)/src/lib-imap \
        -I$(top_srcdir)/src/lib-index \
index 7730bd9bb217af6d0331f8e9aea7e19b294cc667..3b57e09eb4e618500d3e6aad5a184451e50b0612 100644 (file)
@@ -4,6 +4,7 @@
 #include "ioloop.h"
 #include "istream.h"
 #include "restrict-access.h"
+#include "master-service.h"
 #include "mbox-storage.h"
 #include "mbox-lock.h"
 #include "mbox-file.h"
@@ -118,11 +119,17 @@ static struct mail_storage *mbox_storage_alloc(void)
 
 static int
 mbox_storage_create(struct mail_storage *_storage, struct mail_namespace *ns,
-                   const char **error_r ATTR_UNUSED)
+                   const char **error_r)
 {
        struct mbox_storage *storage = (struct mbox_storage *)_storage;
        const char *dir;
 
+       if (master_service_get_client_limit(master_service) > 1) {
+               /* we can't handle locking related problems. */
+               *error_r = "mbox requires client_limit=1 for service";
+               return -1;
+       }
+
        storage->set = mail_storage_get_driver_settings(_storage);
 
        dir = mailbox_list_get_path(ns->list, NULL,