diff src/doveadm/dsync/dsync-ibc-stream.c @ 18181:35e4a6ae8d85

dsync: Added -F parameter to sync only mails with[out] specific flag.
author Timo Sirainen <tss@iki.fi>
date Tue, 20 Jan 2015 04:07:09 +0200
parents 39d00448490f
children b4dbe64c0032
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-ibc-stream.c	Tue Jan 20 03:23:29 2015 +0200
+++ b/src/doveadm/dsync/dsync-ibc-stream.c	Tue Jan 20 04:07:09 2015 +0200
@@ -76,7 +76,7 @@
 	  	"debug sync_visible_namespaces exclude_mailboxes  "
 	  	"send_mail_requests backup_send backup_recv lock_timeout "
 	  	"no_mail_sync no_backup_overwrite purge_remote "
-		"sync_since_timestamp virtual_all_box"
+		"sync_since_timestamp sync_flags virtual_all_box"
 	},
 	{ .name = "mailbox_state",
 	  .chr = 'S',
@@ -658,6 +658,10 @@
 		dsync_serializer_encode_add(encoder, "sync_since_timestamp",
 			t_strdup_printf("%ld", (long)set->sync_since_timestamp));
 	}
+	if (set->sync_flags != NULL) {
+		dsync_serializer_encode_add(encoder, "sync_flags",
+					    set->sync_flags);
+	}
 	if ((set->brain_flags & DSYNC_BRAIN_FLAG_SEND_MAIL_REQUESTS) != 0)
 		dsync_serializer_encode_add(encoder, "send_mail_requests", "");
 	if ((set->brain_flags & DSYNC_BRAIN_FLAG_BACKUP_SEND) != 0)
@@ -760,6 +764,8 @@
 			return DSYNC_IBC_RECV_RET_TRYAGAIN;
 		}
 	}
+	if (dsync_deserializer_decode_try(decoder, "sync_flags", &value))
+		set->sync_flags = p_strdup(pool, value);
 	if (dsync_deserializer_decode_try(decoder, "send_mail_requests", &value))
 		set->brain_flags |= DSYNC_BRAIN_FLAG_SEND_MAIL_REQUESTS;
 	if (dsync_deserializer_decode_try(decoder, "backup_send", &value))