public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in gnome-extra/evolution-data-server/files: evolution-data-server-3.8.4-pop3-removal.patch
@ 2013-11-18 20:02 Pacho Ramos (pacho)
  0 siblings, 0 replies; 2+ messages in thread
From: Pacho Ramos (pacho) @ 2013-11-18 20:02 UTC (permalink / raw
  To: gentoo-commits

pacho       13/11/18 20:02:27

  Removed:              evolution-data-server-3.8.4-pop3-removal.patch
  Log:
  RDEPEND on libsecret[crypt] (#491548 by Rick Harris), drop old
  
  (Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)


^ permalink raw reply	[flat|nested] 2+ messages in thread
* [gentoo-commits] gentoo-x86 commit in gnome-extra/evolution-data-server/files: evolution-data-server-3.8.4-pop3-removal.patch
@ 2013-08-09 17:36 Pacho Ramos (pacho)
  0 siblings, 0 replies; 2+ messages in thread
From: Pacho Ramos (pacho) @ 2013-08-09 17:36 UTC (permalink / raw
  To: gentoo-commits

pacho       13/08/09 17:36:32

  Added:                evolution-data-server-3.8.4-pop3-removal.patch
  Log:
  Fix 'Old POP3 mails can be removed before getting them, upstream bug #705446'
  
  (Portage version: 2.1.13.7/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)

Revision  Changes    Path
1.1                  gnome-extra/evolution-data-server/files/evolution-data-server-3.8.4-pop3-removal.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-extra/evolution-data-server/files/evolution-data-server-3.8.4-pop3-removal.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-extra/evolution-data-server/files/evolution-data-server-3.8.4-pop3-removal.patch?rev=1.1&content-type=text/plain

Index: evolution-data-server-3.8.4-pop3-removal.patch
===================================================================
From 809b48f1f1fa3a5f242d311be236a93bb012db53 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Thu, 08 Aug 2013 05:46:53 +0000
Subject: Bug #705446 - Old POP3 mails can be removed before getting them

---
diff --git a/camel/providers/pop3/camel-pop3-folder.c b/camel/providers/pop3/camel-pop3-folder.c
index 2395c12..8390ef9 100644
--- a/camel/providers/pop3/camel-pop3-folder.c
+++ b/camel/providers/pop3/camel-pop3-folder.c
@@ -443,6 +443,47 @@ pop3_folder_get_uids (CamelFolder *folder)
 	return uids;
 }
 
+static GPtrArray *
+pop3_get_uncached_uids (CamelFolder *folder,
+			GPtrArray *uids,
+			GError **error)
+{
+	CamelPOP3Folder *pop3_folder;
+	CamelPOP3Store *pop3_store;
+	CamelDataCache *pop3_cache;
+	GPtrArray *uncached_uids;
+	gint ii;
+
+	g_return_val_if_fail (CAMEL_IS_POP3_FOLDER (folder), NULL);
+	g_return_val_if_fail (uids != NULL, NULL);
+
+	pop3_folder = CAMEL_POP3_FOLDER (folder);
+	pop3_store = CAMEL_POP3_STORE (camel_folder_get_parent_store (folder));
+	pop3_cache = camel_pop3_store_ref_cache (pop3_store);
+
+	uncached_uids = g_ptr_array_new ();
+
+	for (ii = 0; ii < uids->len; ii++) {
+		const gchar *uid = uids->pdata[ii];
+		CamelStream *stream = NULL;
+		CamelPOP3FolderInfo *fi;
+		gchar buffer[1];
+
+		fi = g_hash_table_lookup (pop3_folder->uids_fi, uid);
+		if (!fi || !pop3_cache ||
+		    (stream = camel_data_cache_get (pop3_cache, "cache", fi->uid, NULL)) == NULL ||
+		    camel_stream_read (stream, buffer, 1, NULL, NULL) != 1 ||
+		    buffer[0] != '#')
+			g_ptr_array_add (uncached_uids, (gpointer) camel_pstring_strdup (uid));
+
+		g_clear_object (&stream);
+	}
+
+	g_clear_object (&pop3_cache);
+
+	return uncached_uids;
+}
+
 static gchar *
 pop3_folder_get_filename (CamelFolder *folder,
                           const gchar *uid,
@@ -920,7 +961,7 @@ pop3_folder_synchronize_sync (CamelFolder *folder,
 
 	g_object_unref (settings);
 
-	if (is_online && delete_after_days > 0 && !expunge) {
+	if (is_online && delete_after_days > 0 && !expunge && !g_cancellable_is_cancelled (cancellable)) {
 		camel_operation_push_message (
 			cancellable, _("Expunging old messages"));
 
@@ -930,6 +971,12 @@ pop3_folder_synchronize_sync (CamelFolder *folder,
 		camel_operation_pop_message (cancellable);
 	}
 
+	if (g_cancellable_is_cancelled (cancellable)) {
+		if (error && !*error)
+			g_cancellable_set_error_if_cancelled (cancellable, error);
+		return FALSE;
+	}
+
 	if (!expunge || (keep_on_server && !delete_expunged))
 		return TRUE;
 
@@ -948,6 +995,15 @@ pop3_folder_synchronize_sync (CamelFolder *folder,
 	pop3_engine = camel_pop3_store_ref_engine (pop3_store);
 
 	for (i = 0; i < pop3_folder->uids->len; i++) {
+		if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
+			g_clear_object (&pop3_cache);
+			g_clear_object (&pop3_engine);
+
+			camel_operation_pop_message (cancellable);
+
+			return FALSE;
+		}
+
 		fi = pop3_folder->uids->pdata[i];
 		/* busy already?  wait for that to finish first */
 		if (fi->cmd) {
@@ -971,6 +1027,15 @@ pop3_folder_synchronize_sync (CamelFolder *folder,
 	}
 
 	for (i = 0; i < pop3_folder->uids->len; i++) {
+		if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
+			g_clear_object (&pop3_cache);
+			g_clear_object (&pop3_engine);
+
+			camel_operation_pop_message (cancellable);
+
+			return FALSE;
+		}
+
 		fi = pop3_folder->uids->pdata[i];
 		/* wait for delete commands to finish */
 		if (fi->cmd) {
@@ -1005,6 +1070,7 @@ camel_pop3_folder_class_init (CamelPOP3FolderClass *class)
 	folder_class->get_message_count = pop3_folder_get_message_count;
 	folder_class->get_uids = pop3_folder_get_uids;
 	folder_class->free_uids = camel_folder_free_shallow;
+	folder_class->get_uncached_uids = pop3_get_uncached_uids;
 	folder_class->get_filename = pop3_folder_get_filename;
 	folder_class->set_message_flags = pop3_folder_set_message_flags;
 	folder_class->get_message_sync = pop3_folder_get_message_sync;
@@ -1151,6 +1217,9 @@ camel_pop3_delete_old (CamelFolder *folder,
 		return FALSE;
 	}
 
+	if (g_cancellable_set_error_if_cancelled (cancellable, error))
+		return FALSE;
+
 	pop3_folder = CAMEL_POP3_FOLDER (folder);
 	pop3_store = CAMEL_POP3_STORE (parent_store);
 	pop3_cache = camel_pop3_store_ref_cache (pop3_store);
@@ -1163,6 +1232,13 @@ camel_pop3_delete_old (CamelFolder *folder,
 		message_time = 0;
 		fi = pop3_folder->uids->pdata[i];
 
+		if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
+			g_clear_object (&pop3_cache);
+			g_clear_object (&pop3_engine);
+
+			return FALSE;
+		}
+
 		if (fi->cmd) {
 			while (camel_pop3_engine_iterate (pop3_engine, fi->cmd, cancellable, NULL) > 0) {
 				; /* do nothing - iterating until end */
@@ -1199,6 +1275,13 @@ camel_pop3_delete_old (CamelFolder *folder,
 				__FILE__, __LINE__, day_lag, days_to_delete));
 
 			if (day_lag > days_to_delete) {
+				if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
+					g_clear_object (&pop3_cache);
+					g_clear_object (&pop3_engine);
+
+					return FALSE;
+				}
+
 				if (fi->cmd) {
 					while (camel_pop3_engine_iterate (pop3_engine, fi->cmd, cancellable, NULL) > 0) {
 						; /* do nothing - iterating until end */
@@ -1224,6 +1307,13 @@ camel_pop3_delete_old (CamelFolder *folder,
 	}
 
 	for (i = 0; i < pop3_folder->uids->len; i++) {
+		if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
+			g_clear_object (&pop3_cache);
+			g_clear_object (&pop3_engine);
+
+			return FALSE;
+		}
+
 		fi = pop3_folder->uids->pdata[i];
 		/* wait for delete commands to finish */
 		if (fi->cmd) {
--
cgit v0.9.2





^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-11-18 20:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-18 20:02 [gentoo-commits] gentoo-x86 commit in gnome-extra/evolution-data-server/files: evolution-data-server-3.8.4-pop3-removal.patch Pacho Ramos (pacho)
  -- strict thread matches above, loose matches on Subject: below --
2013-08-09 17:36 Pacho Ramos (pacho)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox