]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: dsync - Extract dsync_mailbox_export_init() parameters to a structure
authorAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 11 Nov 2025 06:47:47 +0000 (08:47 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 11 Nov 2025 10:46:09 +0000 (12:46 +0200)
It's easier to extend in future

src/doveadm/dsync/dsync-brain-mailbox.c
src/doveadm/dsync/dsync-mailbox-export.c
src/doveadm/dsync/dsync-mailbox-export.h

index 965fb514f68add3992af5e5babc4a7a25c81790b..cdb20bd86e743b8827076d2e02f6b10f305bdf95 100644 (file)
@@ -345,13 +345,17 @@ int dsync_brain_sync_mailbox_open(struct dsync_brain *brain,
                exporter_flags |= DSYNC_MAILBOX_EXPORTER_FLAG_NO_HDR_HASHES;
        }
 
+       const struct dsync_mailbox_export_settings export_set = {
+               .last_common_uid = last_common_uid,
+               .flags = exporter_flags,
+               .hdr_hash_version = brain->hdr_hash_version,
+               .hashed_headers = brain->hashed_headers,
+               .parent_event = brain->event,
+       };
+
        brain->box_exporter = brain->backup_recv ? NULL :
                dsync_mailbox_export_init(brain->box, brain->log_scan,
-                                         last_common_uid,
-                                         exporter_flags,
-                                         brain->hdr_hash_version,
-                                         brain->hashed_headers,
-                                         brain->event);
+                                         &export_set);
        dsync_brain_sync_mailbox_init_remote(brain, remote_dsync_box);
        return 1;
 }
index 5302795f4a56d8dc1af2faeefaa525e2aff40169..57b73fe81441aa8a20d950d5332847cbddd645dc 100644 (file)
@@ -502,11 +502,7 @@ dsync_mailbox_export_log_scan(struct dsync_mailbox_exporter *exporter,
 struct dsync_mailbox_exporter *
 dsync_mailbox_export_init(struct mailbox *box,
                          struct dsync_transaction_log_scan *log_scan,
-                         uint32_t last_common_uid,
-                         enum dsync_mailbox_exporter_flags flags,
-                         unsigned int hdr_hash_version,
-                         const char *const *hashed_headers,
-                         struct event *parent_event)
+                         const struct dsync_mailbox_export_settings *set)
 {
        struct dsync_mailbox_exporter *exporter;
        pool_t pool;
@@ -517,22 +513,22 @@ dsync_mailbox_export_init(struct mailbox *box,
        exporter->pool = pool;
        exporter->box = box;
        exporter->log_scan = log_scan;
-       exporter->last_common_uid = last_common_uid;
+       exporter->last_common_uid = set->last_common_uid;
        exporter->auto_export_mails =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_AUTO_EXPORT_MAILS) != 0;
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_AUTO_EXPORT_MAILS) != 0;
        exporter->mails_have_guids =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_MAILS_HAVE_GUIDS) != 0;
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_MAILS_HAVE_GUIDS) != 0;
        exporter->minimal_dmail_fill =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_MINIMAL_DMAIL_FILL) != 0;
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_MINIMAL_DMAIL_FILL) != 0;
        exporter->export_received_timestamps =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_TIMESTAMPS) != 0;
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_TIMESTAMPS) != 0;
        exporter->export_virtual_sizes =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_VSIZES) != 0;
-       exporter->hdr_hash_version = hdr_hash_version;
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_VSIZES) != 0;
+       exporter->hdr_hash_version = set->hdr_hash_version;
        exporter->no_hdr_hashes =
-               (flags & DSYNC_MAILBOX_EXPORTER_FLAG_NO_HDR_HASHES) != 0;
-       exporter->hashed_headers = hashed_headers;
-       exporter->event = event_create(parent_event);
+               (set->flags & DSYNC_MAILBOX_EXPORTER_FLAG_NO_HDR_HASHES) != 0;
+       exporter->hashed_headers = set->hashed_headers;
+       exporter->event = event_create(set->parent_event);
 
        p_array_init(&exporter->requested_uids, pool, 16);
        p_array_init(&exporter->search_uids, pool, 16);
index dfa6f029cc9c03518cf6847184d8140949136ed7..f30ec8f1483503120a16bac60b91efe11284fe1d 100644 (file)
@@ -10,14 +10,18 @@ enum dsync_mailbox_exporter_flags {
        DSYNC_MAILBOX_EXPORTER_FLAG_VSIZES              = 0x40,
 };
 
+struct dsync_mailbox_export_settings {
+       uint32_t last_common_uid;
+       enum dsync_mailbox_exporter_flags flags;
+       unsigned int hdr_hash_version;
+       const char *const *hashed_headers;
+       struct event *parent_event;
+};
+
 struct dsync_mailbox_exporter *
 dsync_mailbox_export_init(struct mailbox *box,
                          struct dsync_transaction_log_scan *log_scan,
-                         uint32_t last_common_uid,
-                         enum dsync_mailbox_exporter_flags flags,
-                         unsigned int hdr_hash_version,
-                         const char *const *hashed_headers,
-                         struct event *parent_event);
+                         const struct dsync_mailbox_export_settings *set);
 /* Returns 1 if attribute was returned, 0 if no more attributes, -1 on error */
 int dsync_mailbox_export_next_attr(struct dsync_mailbox_exporter *exporter,
                                   const struct dsync_mailbox_attribute **attr_r);