Lines Matching defs:change

31 	struct dsync_mail_change *change;
136 "save", "expunge", "flag-change"
597 const struct dsync_mail_change *change,
602 if (change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
603 if (guid_128_from_string(change->guid, change_guid_128) < 0)
606 mail_generate_guid_128_hash(change->guid, change_guid_128);
609 *cmp_guid_r = change->guid;
610 return strcmp(change->guid, guid) == 0;
618 change->guid);
641 expunge-change for it. if the message's
877 newmail->change = save_change;
904 const struct dsync_mail_change *change)
908 if (!mail_set_uid(importer->mail, change->uid))
910 if (change->guid == NULL) {
914 if (*change->guid == '\0') {
926 if (!dsync_mail_change_guid_equals(importer, change, guid, &cmp_guid)) {
929 change->uid, guid, cmp_guid));
936 const struct dsync_mail_change *change)
940 if (change->guid == NULL || change->guid[0] == '\0' ||
943 if (!dsync_mail_change_guid_equals(importer, change,
947 change->uid, importer->cur_guid, cmp_guid));
995 /* don't change flags that are currently identical in both sides */
1203 const struct dsync_mail_change *change)
1210 if (array_is_created(&change->keyword_changes))
1211 changes = array_get(&change->keyword_changes, &count);
1236 change->add_flags | change->final_flags);
1237 if (mail_get_modseq(mail) < change->modseq)
1238 mail_update_modseq(mail, change->modseq);
1239 if (mail_get_pvt_modseq(mail) < change->pvt_modseq)
1240 mail_update_pvt_modseq(mail, change->pvt_modseq);
1245 const struct dsync_mail_change *change)
1256 i_assert((change->add_flags & change->remove_flags) == 0);
1259 importer->cur_mail->uid == change->uid) {
1260 if (!dsync_check_cur_guid(importer, change))
1264 if (!dsync_import_set_mail(importer, change))
1271 dsync_mailbox_import_replace_flags(mail, change);
1276 POINTER_CAST(change->uid));
1285 if (mail_get_modseq(mail) < change->modseq)
1287 else if (mail_get_modseq(mail) > change->modseq)
1295 if (mail_get_pvt_modseq(mail) < change->pvt_modseq)
1297 else if (mail_get_pvt_modseq(mail) > change->pvt_modseq)
1304 change->final_flags, change->add_flags, change->remove_flags,
1316 merge_keywords(mail, &local_keyword_changes, &change->keyword_changes,
1322 new_modseq = change->modseq;
1328 new_modseq = change->pvt_modseq;
1336 dsync_mail_change_have_keyword(const struct dsync_mail_change *change,
1341 if (!array_is_created(&change->keyword_changes))
1344 array_foreach(&change->keyword_changes, strp) {
1360 const struct dsync_mail_change *change,
1364 i_assert(change->received_timestamp > 0);
1365 if (change->received_timestamp < importer->sync_since_timestamp) {
1372 i_assert(change->received_timestamp > 0);
1373 if (change->received_timestamp > importer->sync_until_timestamp) {
1380 i_assert(change->virtual_size != (uoff_t)-1);
1381 if (change->virtual_size < importer->sync_max_size) {
1388 bool have_flag = (change->final_flags & importer->sync_flag) != 0;
1400 bool have_kw = dsync_mail_change_have_keyword(change, importer->sync_keyword);
1416 const struct dsync_mail_change *change)
1421 i_assert(change->guid != NULL);
1423 if (change->uid == importer->last_common_uid) {
1427 dsync_mailbox_import_flag_change(importer, change);
1430 if (!dsync_mailbox_import_want_change(importer, change, &result))
1434 dsync_mail_change_dup(importer->pool, change, save);
1439 i_assert(change->uid > importer->last_common_uid);
1444 i_assert(change->uid > importer->last_common_uid);
1446 change->uid < importer->cur_mail->uid);
1453 const struct dsync_mail_change *change)
1459 i_assert(change->uid <= importer->last_common_uid);
1460 if (dsync_import_set_mail(importer, change))
1463 change->uid < importer->cur_mail->uid) {
1467 i_assert(change->uid >= importer->last_common_uid);
1468 } else if (change->uid == importer->last_common_uid) {
1470 i_assert(importer->cur_mail->uid == change->uid);
1471 if (dsync_check_cur_guid(importer, change))
1476 i_assert(change->uid > importer->last_common_uid);
1477 seq_range_array_add(&importer->maybe_expunge_uids, change->uid);
1547 const struct dsync_mail_change *change,
1552 if (*change->guid != '\0' && *importer->cur_guid != '\0') {
1554 if (dsync_mail_change_guid_equals(importer, change,
1566 if (change->hdr_hash == NULL) {
1568 if (change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
1591 (dsync_mail_hdr_hash_is_empty(change->hdr_hash) ||
1595 } else if (strcmp(change->hdr_hash, hdr_hash) == 0) {
1600 change->hdr_hash, hdr_hash);
1607 const struct dsync_mail_change *change,
1612 if (*change->guid == '\0') {
1623 POINTER_CAST(change->uid));
1631 change->guid, NULL)) {
1632 importer->last_common_uid = change->uid;
1634 } else if (change->type != DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
1651 const struct dsync_mail_change *change)
1660 change->uid, change->guid);
1668 const struct dsync_mail_change *change,
1673 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE ||
1674 ((change->received_timestamp > 0 ||
1677 (change->virtual_size != (uoff_t)-1 || importer->sync_max_size == 0)));
1680 if (!importer_next_mail(importer, change->uid)) {
1683 if (change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
1689 i_assert(change->guid != NULL);
1690 if (!dsync_mailbox_import_want_change(importer, change, result_r))
1692 else if (importer->local_uid_next <= change->uid) {
1696 dsync_mailbox_revert_missing(importer, change);
1697 *result_r = "Reverting local change by deleting mailbox";
1698 } else if (!dsync_mailbox_find_common_expunged_uid(importer, change, result_r)) {
1710 if (change->guid == NULL) {
1712 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE);
1716 if (importer->cur_mail->uid == change->uid) {
1719 if ((ret = dsync_mailbox_import_match_msg(importer, change, result_r)) < 0) {
1724 importer->last_common_uid = change->uid;
1731 dsync_mailbox_revert_existing_uid(importer, change->uid, *result_r);
1736 if (!dsync_mailbox_import_want_change(importer, change, result_r))
1739 change->type != DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
1740 dsync_mailbox_revert_missing(importer, change);
1741 *result_r = "Reverting local change by deleting mailbox";
1743 (void)dsync_mailbox_find_common_expunged_uid(importer, change, result_r);
1750 const struct dsync_mail_change *change)
1755 i_assert(importer->prev_uid < change->uid);
1757 importer->prev_uid = change->uid;
1766 dsync_mailbox_find_common_uid(importer, change, &result);
1772 imp_debug(importer, "Import change type=%s GUID=%s UID=%u hdr_hash=%s result=%s",
1773 dsync_mail_change_type_names[change->type],
1774 change->guid != NULL ? change->guid : "<unknown>", change->uid,
1775 change->hdr_hash != NULL ? change->hdr_hash : "", result);
1794 if (change->uid <= importer->last_common_uid) {
1795 i_assert(change->type != DSYNC_MAIL_CHANGE_TYPE_SAVE);
1796 } else if (change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
1800 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_SAVE);
1804 i_assert(change->uid >= importer->last_common_uid);
1808 c) uid > last_common_uid: i) TYPE_EXPUNGE change has
1812 if (change->uid > importer->last_common_uid) {
1813 i_assert(change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE ||
1815 change->uid < importer->cur_mail->uid);
1819 switch (change->type) {
1821 dsync_mailbox_import_save(importer, change);
1824 dsync_mailbox_import_expunge(importer, change);
1828 dsync_mailbox_import_flag_change(importer, change);
2304 dsync_mailbox_get_final_keywords(const struct dsync_mail_change *change)
2310 if (!array_is_created(&change->keyword_changes))
2313 changes = array_get(&change->keyword_changes, &count);
2333 const struct dsync_mail_change *change)
2338 keyword_names = dsync_mailbox_get_final_keywords(change);
2342 mailbox_save_set_flags(save_ctx, change->final_flags, keywords);
2346 if (change->modseq > 1) {
2348 mailbox_save_set_min_modseq(save_ctx, change->modseq);
2410 dsync_mailbox_save_set_metadata(importer, save_ctx, newmail->change);