]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Add event to mailbox_log
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 1 Oct 2019 16:06:10 +0000 (19:06 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 17 Feb 2020 11:03:34 +0000 (11:03 +0000)
src/lib-index/mailbox-log.c
src/lib-index/mailbox-log.h
src/lib-storage/mailbox-list.c

index e75826192e0bb8d1593526b5d6da47e3d94e6bd2..ff4595866ca330bebf4643175074e526a75b14a4 100644 (file)
@@ -23,6 +23,7 @@
 struct mailbox_log {
        char *filepath, *filepath2;
        int fd;
+       struct event *event;
        time_t open_timestamp;
 
        mode_t mode;
@@ -44,11 +45,13 @@ struct mailbox_log_iter {
 
 static void mailbox_log_close(struct mailbox_log *log);
 
-struct mailbox_log *mailbox_log_alloc(const char *path)
+struct mailbox_log *
+mailbox_log_alloc(struct event *parent_event, const char *path)
 {
        struct mailbox_log *log;
 
        log = i_new(struct mailbox_log, 1);
+       log->event = event_create(parent_event);
        log->filepath = i_strdup(path);
        log->filepath2 = i_strconcat(path, ".2", NULL);
        log->mode = 0644;
@@ -64,6 +67,7 @@ void mailbox_log_free(struct mailbox_log **_log)
        *_log = NULL;
 
        mailbox_log_close(log);
+       event_unref(&log->event);
        i_free(log->gid_origin);
        i_free(log->filepath);
        i_free(log->filepath2);
index 9f58a1da87427f5fd6c92eaced90e7de4b0b48fc..ef19fc23c2c79bc14d70728c7280d7d4e4cb6acf 100644 (file)
@@ -19,7 +19,8 @@ struct mailbox_log_record {
        uint8_t timestamp[4];
 };
 
-struct mailbox_log *mailbox_log_alloc(const char *path);
+struct mailbox_log *
+mailbox_log_alloc(struct event *parent_event, const char *path);
 void mailbox_log_free(struct mailbox_log **log);
 
 void mailbox_log_set_permissions(struct mailbox_log *log, mode_t mode,
index 5823ee04a120be681a0dbf17c0e575fa54f53e60..b9573cb90c0df09dbeb628826bb124d3a66a1ee1 100644 (file)
@@ -1657,7 +1657,7 @@ static bool mailbox_list_init_changelog(struct mailbox_list *list)
                return FALSE;
 
        path = t_strconcat(path, "/"MAILBOX_LOG_FILE_NAME, NULL);
-       list->changelog = mailbox_log_alloc(path);
+       list->changelog = mailbox_log_alloc(list->ns->user->event, path);
 
        mailbox_list_get_root_permissions(list, &perm);
        mailbox_log_set_permissions(list->changelog, perm.file_create_mode,