rpms/evolution-exchange/F-11 evolution-exchange-2.26.3-often-drop-connection.patch, NONE, 1.1 evolution-exchange.spec, 1.61, 1.62

Milan Crha mcrha at fedoraproject.org
Tue Jul 21 09:16:30 UTC 2009


Author: mcrha

Update of /cvs/pkgs/rpms/evolution-exchange/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28399

Modified Files:
	evolution-exchange.spec 
Added Files:
	evolution-exchange-2.26.3-often-drop-connection.patch 
Log Message:
Resolves: bug 510725


evolution-exchange-2.26.3-often-drop-connection.patch:
 mail-stub-exchange.c |   23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

--- NEW FILE evolution-exchange-2.26.3-often-drop-connection.patch ---
diff -up evolution-exchange-2.26.3/mail/mail-stub-exchange.c.often-drop-connection evolution-exchange-2.26.3/mail/mail-stub-exchange.c
--- evolution-exchange-2.26.3/mail/mail-stub-exchange.c.often-drop-connection	2009-07-21 11:12:09.000000000 +0200
+++ evolution-exchange-2.26.3/mail/mail-stub-exchange.c	2009-07-21 11:12:48.000000000 +0200
@@ -402,13 +402,17 @@ message_removed (MailStub *stub, MailStu
 	MailStubExchangeMessage *mmsg;
 	guint index;
 
+	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
 	mmsg = g_hash_table_lookup (mfld->messages_by_href, href);
-	if (!mmsg)
+	if (!mmsg) {
+		g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 		return;
+	}
 	index = find_message_index (mfld, mmsg->seq);
 	g_return_if_fail (index != -1);
 
 	message_remove_at_index (stub, mfld, index);
+	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 }
 
 static void
@@ -1134,12 +1138,16 @@ sync_deletions (MailStubExchange *mse, M
 
 	e2k_results_free (results, nresults);
 
+	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
 	if (visible_count >= mfld->messages->len) {
-		if (mfld->deleted_count == deleted_count)
+		if (mfld->deleted_count == deleted_count) {
+			g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 			return;
+		}
 
 		if (mfld->deleted_count == 0) {
 			mfld->deleted_count = deleted_count;
+			g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 			return;
 		}
 	}
@@ -1165,7 +1173,7 @@ sync_deletions (MailStubExchange *mse, M
 	my_i = mfld->messages->len - 1;
 	while ((result = e2k_result_iter_next (iter))) {
 		mmsg = find_message_by_href (mfld, result->href);
-		if (!mmsg || mmsg->seq >= highest_verified_seq) {
+		if (!mmsg || (mmsg->seq >= highest_verified_seq && highest_verified_seq != -1)) {
 			/* This is a new message or a message we already
 			 * verified. Skip it.
 			 */
@@ -1193,6 +1201,7 @@ sync_deletions (MailStubExchange *mse, M
 			message_removed (stub, mfld, my_mmsg->href);
 			changes = TRUE;
 			my_i--;
+			highest_unverified_index--;
 			my_mmsg = mfld->messages->pdata[my_i];
 		}
 		highest_verified_seq = mmsg->seq;
@@ -1206,6 +1215,7 @@ sync_deletions (MailStubExchange *mse, M
 		}
 
 		my_i--;
+		highest_unverified_index--;
 	}
 	status = e2k_result_iter_free (iter);
 
@@ -1220,6 +1230,8 @@ sync_deletions (MailStubExchange *mse, M
 		changes = TRUE;
 	}
 
+	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+
 	if (changes)
 		mail_stub_push_changes (stub);
 }
@@ -1446,6 +1458,7 @@ refresh_folder_internal (MailStub *stub,
 			       CAMEL_STUB_ARG_FOLDER, mfld->name,
 			       CAMEL_STUB_ARG_END);
 
+	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
 	qsort (messages->data, messages->len,
 	       sizeof (rm), refresh_message_compar);
 	for (i = 0; i < messages->len; i++) {
@@ -1500,6 +1513,7 @@ refresh_folder_internal (MailStub *stub,
 			       CAMEL_STUB_ARG_END);
 
 	mfld->scanned = TRUE;
+	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 	folder_changed (mfld);
 
 	if (background)
@@ -1591,6 +1605,7 @@ expunge_uids (MailStub *stub, const char
 	if (!mfld)
 		return;
 
+	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
 	hrefs = g_ptr_array_new ();
 	for (i = 0; i < uids->len; i++) {
 		mmsg = find_message (mfld, uids->pdata[i]);
@@ -1604,6 +1619,7 @@ expunge_uids (MailStub *stub, const char
 		 */
 		g_ptr_array_free (hrefs, TRUE);
 		mail_stub_return_ok (stub);
+		g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 		return;
 	}
 
@@ -1627,6 +1643,7 @@ expunge_uids (MailStub *stub, const char
 		mail_stub_return_progress (stub, ndeleted * 100 / hrefs->len);
 	}
 	status = e2k_result_iter_free (iter);
+	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
 
 	mail_stub_return_data (stub, CAMEL_STUB_RETVAL_THAW_FOLDER,
 			       CAMEL_STUB_ARG_FOLDER, mfld->name,


Index: evolution-exchange.spec
===================================================================
RCS file: /cvs/pkgs/rpms/evolution-exchange/F-11/evolution-exchange.spec,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -p -r1.61 -r1.62
--- evolution-exchange.spec	29 Jun 2009 13:17:54 -0000	1.61
+++ evolution-exchange.spec	21 Jul 2009 09:16:30 -0000	1.62
@@ -21,7 +21,7 @@
 
 Name: evolution-exchange
 Version: 2.26.3
-Release: 1%{?dist}
+Release: 2%{?dist}
 Group: Applications/Productivity
 Summary: Evolution plugin to interact with MS Exchange Server
 License: GPLv2+
@@ -39,6 +39,9 @@ Patch11: evolution-exchange-2.10.1-fix-6
 # GNOME bug #443022
 Patch12: evolution-exchange-2.11.2-fix-library-order.patch
 
+# GNOME bug #522277 / RH bug #510725
+Patch13: evolution-exchange-2.26.3-often-drop-connection.patch
+
 ### Dependencies ###
 
 Requires: gnutls
@@ -70,6 +73,7 @@ Microsoft Exchange Server.
 
 %patch11 -p1 -b .fix-64bit-acinclude.m4
 %patch12 -p1 -b .fix-library-order
+%patch13 -p1 -b .often-drop-connection
 
 %build
 export CFLAGS="$RPM_OPT_FLAGS -DLDAP_DEPRECATED"
@@ -151,6 +155,9 @@ gconftool-2 --makefile-install-rule %{_s
 %{_sysconfdir}/gconf/schemas/apps_exchange_addressbook-%{evo_major}.schemas
 
 %changelog
+* Tue Jul 21 2009 Milan Crha <mcrha at redhat.com> - 2.26.3-2.fc11
+- Add patch to RH bug #510725 (often connection drop to eex)
+
 * Mon Jun 29 2009 Matthew Barnes <mbarnes at redhat.com> - 2.26.3-1.fc11
 - Update to 2.26.3
 




More information about the fedora-extras-commits mailing list