Tobias Joch
2010-Jul-29 11:28 UTC
[Dovecot] Patch: New event "mailbox_create" for the mail_log plugin
Hello, the following patch for the mail_log plugin (source version = 1.2.13) adds a new logging event "mailbox_create". Perhaps this is also of interest to other people except me ;) Best regards, Tobias Index: src/plugins/mail-log/mail-log-plugin.c ==================================================================--- src/plugins/mail-log/mail-log-plugin.c (revision 571) +++ src/plugins/mail-log/mail-log-plugin.c (working copy) @@ -43,12 +43,14 @@ MAIL_LOG_EVENT_MAILBOX_DELETE = 0x10, MAIL_LOG_EVENT_MAILBOX_RENAME = 0x20, MAIL_LOG_EVENT_FLAG_CHANGE = 0x40, - MAIL_LOG_EVENT_APPEND = 0x80 + MAIL_LOG_EVENT_APPEND = 0x80, + MAIL_LOG_EVENT_MAILBOX_CREATE = 0x100 }; #define MAIL_LOG_DEFAULT_EVENTS \ (MAIL_LOG_EVENT_DELETE | MAIL_LOG_EVENT_UNDELETE | \ MAIL_LOG_EVENT_EXPUNGE | MAIL_LOG_EVENT_COPY | \ - MAIL_LOG_EVENT_MAILBOX_DELETE | MAIL_LOG_EVENT_MAILBOX_RENAME) + MAIL_LOG_EVENT_MAILBOX_DELETE | MAIL_LOG_EVENT_MAILBOX_RENAME | \ + MAIL_LOG_EVENT_MAILBOX_CREATE) static const char *field_names[] = { "uid", @@ -71,6 +73,7 @@ "mailbox_rename", "flag_change", "append", + "mailbox_create", NULL }; @@ -597,6 +600,22 @@ return 0; } +static int +mail_log_mailbox_create(struct mail_storage *storage, const char *name, + bool directory) +{ + union mail_storage_module_context *lstorage = MAIL_LOG_CONTEXT(storage); + + if (lstorage->super.mailbox_create(storage, name, directory) < 0) + return -1; + + if ((mail_log_set.events & MAIL_LOG_EVENT_MAILBOX_CREATE) == 0) + return 0; + + i_info("Mailbox created: %s", str_sanitize(name, MAILBOX_NAME_LOG_LEN)); + return 0; +} + static void mail_log_mail_storage_created(struct mail_storage *storage) { union mail_storage_module_context *lstorage; @@ -604,6 +623,7 @@ lstorage = p_new(storage->pool, union mail_storage_module_context, 1); lstorage->super = storage->v; storage->v.mailbox_open = mail_log_mailbox_open; + storage->v.mailbox_create = mail_log_mailbox_create; MODULE_CONTEXT_SET_SELF(storage, mail_log_storage_module, lstorage); -- Tobias Joch Dipl.-Informatiker (FH) Head of Solution Development inovex GmbH Karlsruher Stra?e 71 D-75179 Pforzheim Tel. +49 7231 - 31 91 71 Fax +49 7231 - 31 91 91 Mobil +49 173 - 31 81 004 tobias.joch at inovex.de www.inovex.de Sitz der Gesellschaft: Pforzheim AG Mannheim, HRB 502126 Gesch?ftsf?hrer: Stephan M?ller
Timo Sirainen
2010-Aug-02 14:34 UTC
[Dovecot] Patch: New event "mailbox_create" for the mail_log plugin
On Thu, 2010-07-29 at 13:28 +0200, Tobias Joch wrote:> the following patch for the mail_log plugin (source version = 1.2.13) adds a new logging event "mailbox_create". > Perhaps this is also of interest to other people except me ;)I added mailbox_create event now to v2.0, but I had to pretty much rewrite the patch because v2.0's mail_log plugin works via notify plugin.