changeset 9688:4d12ca03c4c0 HEAD

dsync: Sync also \Recent flags.
author Timo Sirainen <tss@iki.fi>
date Tue, 28 Jul 2009 13:56:57 -0400
parents ce253d167757
children ceb55c870ed3
files src/dsync/dsync-proxy-client.c src/dsync/dsync-proxy.c src/dsync/test-dsync-proxy-server-cmd.c src/dsync/test-dsync-proxy.c
diffstat 4 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/dsync/dsync-proxy-client.c	Mon Jul 27 19:07:46 2009 -0400
+++ b/src/dsync/dsync-proxy-client.c	Tue Jul 28 13:56:57 2009 -0400
@@ -501,7 +501,7 @@
 
 		str_printfa(str, "MSG-UPDATE\t%u\t%llu\t", msg->uid,
 			    (unsigned long long)msg->modseq);
-		imap_write_flags(str, msg->flags & ~MAIL_RECENT, msg->keywords);
+		imap_write_flags(str, msg->flags, msg->keywords);
 		str_append_c(str, '\n');
 		o_stream_send(worker->output, str_data(str), str_len(str));
 	} T_END;
--- a/src/dsync/dsync-proxy.c	Mon Jul 27 19:07:46 2009 -0400
+++ b/src/dsync/dsync-proxy.c	Tue Jul 28 13:56:57 2009 -0400
@@ -21,7 +21,7 @@
 		    (unsigned long long)msg->modseq);
 	if ((msg->flags & DSYNC_MAIL_FLAG_EXPUNGED) != 0)
 		str_append(str, "\\dsync-expunged ");
-	imap_write_flags(str, msg->flags & MAIL_FLAGS_NONRECENT, msg->keywords);
+	imap_write_flags(str, msg->flags & MAIL_FLAGS_MASK, msg->keywords);
 	str_printfa(str, "\t%ld", (long)msg->save_date);
 }
 
@@ -49,7 +49,6 @@
 	}
 	(void)array_append_space(&keywords);
 
-	msg_r->flags &= ~MAIL_RECENT;
 	msg_r->keywords = array_idx(&keywords, 0);
 	return 0;
 }
--- a/src/dsync/test-dsync-proxy-server-cmd.c	Mon Jul 27 19:07:46 2009 -0400
+++ b/src/dsync/test-dsync-proxy-server-cmd.c	Tue Jul 28 13:56:57 2009 -0400
@@ -11,7 +11,7 @@
 #include "test-dsync-worker.h"
 #include "test-dsync-common.h"
 
-#define ALL_MAIL_FLAGS "\\Answered \\Flagged \\Deleted \\Seen \\Draft"
+#define ALL_MAIL_FLAGS "\\Answered \\Flagged \\Deleted \\Seen \\Draft \\Recent"
 
 static string_t *out;
 static struct dsync_proxy_server *server;
@@ -222,7 +222,7 @@
 	test_assert(event.type == LAST_MSG_TYPE_UPDATE);
 	test_assert(event.msg.uid == 123);
 	test_assert(event.msg.modseq == 4782782842924);
-	test_assert(event.msg.flags == MAIL_FLAGS_NONRECENT);
+	test_assert(event.msg.flags == MAIL_FLAGS_MASK);
 	test_assert(strcmp(event.msg.keywords[0], "kw1") == 0);
 	test_assert(strcmp(event.msg.keywords[1], "kw2") == 0);
 	test_assert(event.msg.keywords[2] == NULL);
--- a/src/dsync/test-dsync-proxy.c	Mon Jul 27 19:07:46 2009 -0400
+++ b/src/dsync/test-dsync-proxy.c	Tue Jul 28 13:56:57 2009 -0400
@@ -57,7 +57,6 @@
 	dsync_proxy_msg_export(str, &msg_in);
 	test_assert(dsync_proxy_msg_import(pool, str_c(str),
 					   &msg_out, &error) == 0);
-	msg_in.flags &= ~MAIL_RECENT;
 	test_assert(dsync_messages_equal(&msg_in, &msg_out));
 
 	/* errors */
@@ -74,7 +73,7 @@
 	test_assert(dsync_proxy_msg_parse_flags(pool, "\\answered \\flagged", &msg_out) == 0);
 	test_assert(msg_out.flags == (MAIL_ANSWERED | MAIL_FLAGGED));
 	test_assert(dsync_proxy_msg_parse_flags(pool, "\\deleted \\recent", &msg_out) == 0);
-	test_assert(msg_out.flags == MAIL_DELETED);
+	test_assert(msg_out.flags == (MAIL_DELETED | MAIL_RECENT));
 	test_assert(dsync_proxy_msg_parse_flags(pool, "\\draft draft \\seen", &msg_out) == 0);
 	test_assert(msg_out.flags == (MAIL_DRAFT | MAIL_SEEN));
 	test_assert(strcasecmp(msg_out.keywords[0], "draft") == 0 && msg_out.keywords[1] == NULL);