Blame SOURCES/evolution-data-server-3.12.11-imapx-expunge-processing.patch

5e6360
diff -up evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c.imapx-expunge-processing evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c
5e6360
--- evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c.imapx-expunge-processing	2015-01-05 16:33:18.000000000 +0100
5e6360
+++ evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c	2015-05-21 12:11:37.466409336 +0200
5e6360
@@ -1930,6 +1930,13 @@ imapx_untagged_expunge (CamelIMAPXServer
5e6360
 	if (job != NULL)
5e6360
 		return TRUE;
5e6360
 
5e6360
+	job = imapx_match_active_job (is, IMAPX_JOB_COPY_MESSAGE, NULL);
5e6360
+	/* Ignore EXPUNGE responses when not running a COPY(MOVE)_MESSAGE job */
5e6360
+	if (!job) {
5e6360
+		c (is->tagprefix, "ignoring untagged expunge: %lu\n", is->priv->context->id);
5e6360
+		return TRUE;
5e6360
+	}
5e6360
+
5e6360
 	c (is->tagprefix, "expunged: %lu\n", is->priv->context->id);
5e6360
 
5e6360
 	g_mutex_lock (&is->priv->select_lock);
5e6360
@@ -5476,6 +5483,14 @@ imapx_job_copy_messages_start (CamelIMAP
5e6360
 	return imapx_command_copy_messages_step_start (is, job, 0, error);
5e6360
 }
5e6360
 
5e6360
+static gboolean
5e6360
+imapx_job_copy_messages_matches (CamelIMAPXJob *job,
5e6360
+				 CamelIMAPXMailbox *mailbox,
5e6360
+				 const gchar *uid)
5e6360
+{
5e6360
+	return camel_imapx_job_has_mailbox (job, mailbox);
5e6360
+}
5e6360
+
5e6360
 /* ********************************************************************** */
5e6360
 
5e6360
 static void
5e6360
@@ -8518,6 +8533,7 @@ camel_imapx_server_copy_message (CamelIM
5e6360
 	job->pri = IMAPX_PRIORITY_COPY_MESSAGE;
5e6360
 	job->type = IMAPX_JOB_COPY_MESSAGE;
5e6360
 	job->start = imapx_job_copy_messages_start;
5e6360
+	job->matches = imapx_job_copy_messages_matches;
5e6360
 
5e6360
 	camel_imapx_job_set_mailbox (job, mailbox);
5e6360