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;
}
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;
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);
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);