]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
plugins: Remove autocreate plugin
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Wed, 9 Dec 2020 14:50:10 +0000 (09:50 -0500)
committerjeff.sipek <jeff.sipek@open-xchange.com>
Tue, 15 Dec 2020 19:05:57 +0000 (19:05 +0000)
Automatic mailbox creation should be done via the autocreate namespace
option.

configure.ac
src/plugins/Makefile.am
src/plugins/autocreate/Makefile.am [deleted file]
src/plugins/autocreate/autocreate-plugin.c [deleted file]
src/plugins/autocreate/autocreate-plugin.h [deleted file]

index f9f6324e345c3c4d6a6c9b858fc4b9c91f562002..94670c8811511478817ee9692d6c319b7f84d32d 100644 (file)
@@ -889,7 +889,6 @@ src/util/Makefile
 src/plugins/Makefile
 src/plugins/acl/Makefile
 src/plugins/imap-acl/Makefile
-src/plugins/autocreate/Makefile
 src/plugins/expire/Makefile
 src/plugins/fs-compress/Makefile
 src/plugins/fts/Makefile
index b5728cb1a6af3cc64a90c8443bcc65a73875376c..60388a6b32eadba18155bb987650e0064c93aa98 100644 (file)
@@ -21,7 +21,6 @@ endif
 SUBDIRS = \
        acl \
        imap-acl \
-       autocreate \
        expire \
        fts \
        fts-squat \
diff --git a/src/plugins/autocreate/Makefile.am b/src/plugins/autocreate/Makefile.am
deleted file mode 100644 (file)
index 625072d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-AM_CPPFLAGS = \
-       -I$(top_srcdir)/src/lib \
-       -I$(top_srcdir)/src/lib-mail \
-       -I$(top_srcdir)/src/lib-imap \
-       -I$(top_srcdir)/src/lib-index \
-       -I$(top_srcdir)/src/lib-storage
-
-NOPLUGIN_LDFLAGS =
-lib20_autocreate_plugin_la_LDFLAGS = -module -avoid-version
-
-module_LTLIBRARIES = \
-       lib20_autocreate_plugin.la
-
-lib20_autocreate_plugin_la_SOURCES = \
-       autocreate-plugin.c
-
-noinst_HEADERS = \
-       autocreate-plugin.h
diff --git a/src/plugins/autocreate/autocreate-plugin.c b/src/plugins/autocreate/autocreate-plugin.c
deleted file mode 100644 (file)
index 47c71ae..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (c) 2007-2018 Dovecot authors, see the included COPYING file */
-
-/* FIXME: this plugin is only for backwards compatibility. log a warning in
-   v2.2 about this and in later versions remove completely */
-
-#include "lib.h"
-#include "array.h"
-#include "unichar.h"
-#include "mail-user.h"
-#include "mail-namespace.h"
-#include "mail-storage-hooks.h"
-#include "autocreate-plugin.h"
-
-static struct mailbox_settings *
-mailbox_settings_find(struct mail_namespace *ns, const char *vname)
-{
-       struct mailbox_settings *const *box_set;
-
-       array_foreach(&ns->set->mailboxes, box_set) {
-               if (strcmp((*box_set)->name, vname) == 0)
-                       return *box_set;
-       }
-       return NULL;
-}
-
-static void
-add_autobox(struct mail_user *user, const char *vname, bool subscriptions)
-{
-       struct mail_namespace *ns;
-       struct mailbox_settings *set;
-       struct mail_namespace_settings tmp_ns_set;
-
-       if (!uni_utf8_str_is_valid(vname)) {
-               i_error("autocreate: Mailbox name isn't valid UTF-8: %s",
-                       vname);
-               return;
-       }
-
-       ns = mail_namespace_find(user->namespaces, vname);
-       if ((ns->flags & NAMESPACE_FLAG_UNUSABLE) != 0) {
-               i_error("autocreate: No namespace found for mailbox: %s",
-                       vname);
-               return;
-       }
-
-       if (array_is_created(&ns->set->mailboxes))
-               tmp_ns_set.mailboxes = ns->set->mailboxes;
-       else {
-               p_array_init(&tmp_ns_set.mailboxes, user->pool, 16);
-               /* work around ns->set being a const pointer. pretty ugly, but
-                  this plugin is deprecated anyway. */
-               memcpy((void *)&ns->set->mailboxes.arr, &tmp_ns_set.mailboxes.arr,
-                      sizeof(ns->set->mailboxes.arr));
-       }
-
-       if (strncmp(vname, ns->prefix, ns->prefix_len) == 0)
-               vname += ns->prefix_len;
-       set = mailbox_settings_find(ns, vname);
-       if (set == NULL) {
-               set = p_new(user->pool, struct mailbox_settings, 1);
-               set->name = p_strdup(user->pool, vname);
-               set->autocreate = MAILBOX_SET_AUTO_NO;
-               set->special_use = "";
-               array_push_back(&tmp_ns_set.mailboxes, &set);
-       }
-       if (subscriptions)
-               set->autocreate = MAILBOX_SET_AUTO_SUBSCRIBE;
-       else if (strcmp(set->autocreate, MAILBOX_SET_AUTO_SUBSCRIBE) != 0)
-               set->autocreate = MAILBOX_SET_AUTO_CREATE;
-}
-
-static void
-read_autobox_settings(struct mail_user *user, const char *env_name_base,
-                     bool subscriptions)
-{
-       const char *value;
-       char env_name[strlen(env_name_base) + MAX_INT_STRLEN];
-       unsigned int i = 1;
-
-       value = mail_user_plugin_getenv(user, env_name_base);
-       while (value != NULL) {
-               add_autobox(user, value, subscriptions);
-
-               if (i_snprintf(env_name, sizeof(env_name), "%s%u",
-                              env_name_base, ++i) < 0)
-                       i_unreached();
-               value = mail_user_plugin_getenv(user, env_name);
-       }
-}
-
-static void
-autocreate_mail_namespaces_created(struct mail_namespace *namespaces)
-{
-       read_autobox_settings(namespaces->user, "autocreate", FALSE);
-       read_autobox_settings(namespaces->user, "autosubscribe", TRUE);
-}
-
-static struct mail_storage_hooks autocreate_mail_storage_hooks = {
-       .mail_namespaces_created = autocreate_mail_namespaces_created
-};
-
-void autocreate_plugin_init(struct module *module)
-{
-       i_warning("autocreate plugin is deprecated, use mailbox { auto } setting instead");
-       mail_storage_hooks_add(module, &autocreate_mail_storage_hooks);
-}
-
-void autocreate_plugin_deinit(void)
-{
-       mail_storage_hooks_remove(&autocreate_mail_storage_hooks);
-}
diff --git a/src/plugins/autocreate/autocreate-plugin.h b/src/plugins/autocreate/autocreate-plugin.h
deleted file mode 100644 (file)
index 59a363d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef AUTOCREATE_PLUGIN_H
-#define AUTOCREATE_PLUGIN_H
-
-void autocreate_plugin_init(struct module *module);
-void autocreate_plugin_deinit(void);
-
-#endif