Mercurial > dovecot > core-2.2
changeset 19012:156aed1fc0fc
dsync: Added assert to make sure end-of-list isn't sent when brain has already failed.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 26 Aug 2015 13:38:52 +0200 |
parents | 5220d361871e |
children | adb69a13bc66 |
files | src/doveadm/dsync/dsync-brain-mails.c |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-brain-mails.c Tue Aug 25 23:20:49 2015 +0300 +++ b/src/doveadm/dsync/dsync-brain-mails.c Wed Aug 26 13:38:52 2015 +0200 @@ -90,6 +90,13 @@ return TRUE; } +static void dsync_brain_send_end_of_list(struct dsync_brain *brain, + enum dsync_ibc_eol_type type) +{ + i_assert(!brain->failed); + dsync_ibc_send_end_of_list(brain->ibc, type); +} + static void dsync_brain_send_mailbox_attribute(struct dsync_brain *brain) { const struct dsync_mailbox_attribute *attr; @@ -98,7 +105,7 @@ if (dsync_ibc_send_mailbox_attribute(brain->ibc, attr) == 0) return; } - dsync_ibc_send_end_of_list(brain->ibc, DSYNC_IBC_EOL_MAILBOX_ATTRIBUTE); + dsync_brain_send_end_of_list(brain, DSYNC_IBC_EOL_MAILBOX_ATTRIBUTE); brain->box_send_state = DSYNC_BOX_STATE_CHANGES; } @@ -130,7 +137,7 @@ if (dsync_ibc_send_change(brain->ibc, change) == 0) return; } - dsync_ibc_send_end_of_list(brain->ibc, DSYNC_IBC_EOL_MAIL_CHANGES); + dsync_brain_send_end_of_list(brain, DSYNC_IBC_EOL_MAIL_CHANGES); if (brain->mail_requests && brain->box_importer != NULL) brain->box_send_state = DSYNC_BOX_STATE_MAIL_REQUESTS; else @@ -170,7 +177,7 @@ if (brain->box_recv_state < DSYNC_BOX_STATE_MAIL_REQUESTS) return FALSE; - dsync_ibc_send_end_of_list(brain->ibc, DSYNC_IBC_EOL_MAIL_REQUESTS); + dsync_brain_send_end_of_list(brain, DSYNC_IBC_EOL_MAIL_REQUESTS); if (brain->box_exporter != NULL) brain->box_send_state = DSYNC_BOX_STATE_MAILS; else { @@ -274,7 +281,7 @@ } brain->box_send_state = DSYNC_BOX_STATE_DONE; - dsync_ibc_send_end_of_list(brain->ibc, DSYNC_IBC_EOL_MAILS); + dsync_brain_send_end_of_list(brain, DSYNC_IBC_EOL_MAILS); dsync_brain_sync_half_finished(brain); return TRUE;