summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch')
-rw-r--r--gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch152
1 files changed, 0 insertions, 152 deletions
diff --git a/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch b/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch
deleted file mode 100644
index 0b74e4fa0926..000000000000
--- a/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-** Fix for GNOME bug #501295, Gentoo bug #201824
-
-Create locks around the cache so that the file is protected well not to crash.
-
---- a/addressbook/e-book-backend-exchange.c.orig 2007-10-12 09:05:18.000000000 +0200
-+++ b/addressbook/e-book-backend-exchange.c 2008-01-21 11:02:48.000000000 +0100
-@@ -84,12 +84,15 @@
- gboolean is_cache_ready;
- gboolean marked_for_offline;
-
-- GMutex *create_mutex;
-+ GMutex *cache_lock;
-
- EBookBackendSummary *summary;
- EBookBackendCache *cache;
- };
-
-+#define LOCK(x) g_mutex_lock (x->cache_lock)
-+#define UNLOCK(x) g_mutex_unlock (x->cache_lock)
-+
- typedef struct PropMapping PropMapping;
-
- static void subscription_notify (E2kContext *ctx, const char *uri, E2kContextChangeType type, gpointer user_data);
-@@ -477,6 +480,7 @@
- field_names, n_field_names,
- bepriv->base_rn, NULL, TRUE);
-
-+ LOCK (bepriv);
- e_file_cache_freeze_changes (E_FILE_CACHE (bepriv->cache));
- while ((result = e2k_result_iter_next (iter))) {
- contact = e_contact_from_props (be, result);
-@@ -488,6 +492,7 @@
- e_book_backend_cache_set_populated (bepriv->cache);
- bepriv->is_cache_ready=TRUE;
- e_file_cache_thaw_changes (E_FILE_CACHE (bepriv->cache));
-+ UNLOCK (bepriv);
- return NULL;
- }
-
-@@ -520,6 +525,7 @@
- field_names, n_field_names,
- bepriv->base_rn, NULL, TRUE);
-
-+ LOCK (bepriv);
- e_file_cache_freeze_changes (E_FILE_CACHE (bepriv->cache));
- while ((result = e2k_result_iter_next (iter))) {
- contact = e_contact_from_props (be, result);
-@@ -531,7 +537,7 @@
- e_book_backend_cache_set_populated (bepriv->cache);
- bepriv->is_cache_ready=TRUE;
- e_file_cache_thaw_changes (E_FILE_CACHE (bepriv->cache));
--
-+ UNLOCK (bepriv);
- return TRUE;
- }
-
-@@ -1319,13 +1325,13 @@
-
- d(printf("ebbe_create_contact(%p, %p, %s)\n", backend, book, vcard));
-
-- g_mutex_lock (bepriv->create_mutex);
-+ LOCK (bepriv);
-
- switch (bepriv->mode) {
-
- case GNOME_Evolution_Addressbook_MODE_LOCAL:
- *contact = NULL;
-- g_mutex_unlock (bepriv->create_mutex);
-+ UNLOCK (bepriv);
- return GNOME_Evolution_Addressbook_RepositoryOffline;
-
- case GNOME_Evolution_Addressbook_MODE_REMOTE:
-@@ -1346,6 +1353,7 @@
- state = e_book_backend_exchange_connect (be);
- if ( state != GNOME_Evolution_Addressbook_Success) {
- d(printf("Returning status %d while creating contact\n", state));
-+ UNLOCK (bepriv);
- return state;
- }
- }
-@@ -1375,18 +1383,18 @@
- e_book_backend_summary_add_contact (bepriv->summary,
- *contact);
- e_book_backend_cache_add_contact (bepriv->cache, *contact);
-- g_mutex_unlock (bepriv->create_mutex);
-+ UNLOCK (bepriv);
- return GNOME_Evolution_Addressbook_Success;
- } else {
- g_object_unref (*contact);
- *contact = NULL;
-- g_mutex_unlock (bepriv->create_mutex);
-+ UNLOCK (bepriv);
- return http_status_to_pas (status);
- }
- default:
- break;
- }
-- g_mutex_unlock (bepriv->create_mutex);
-+ UNLOCK (bepriv);
- return GNOME_Evolution_Addressbook_Success;
- }
-
-@@ -1501,13 +1509,14 @@
- e2k_results_free (results, nresults);
-
- if (E2K_HTTP_STATUS_IS_SUCCESSFUL (status)) {
-+ LOCK (bepriv);
- e_book_backend_summary_remove_contact (bepriv->summary,
- uri);
- e_book_backend_summary_add_contact (bepriv->summary,
- *contact);
- e_book_backend_cache_remove_contact (bepriv->cache, uri);
- e_book_backend_cache_add_contact (bepriv->cache, *contact);
--
-+ UNLOCK (bepriv);
- return GNOME_Evolution_Addressbook_Success;
- } else {
- g_object_unref (*contact);
-@@ -1550,11 +1559,13 @@
- uri = l->data;
- status = e2k_context_delete (bepriv->ctx, NULL, uri);
- if (E2K_HTTP_STATUS_IS_SUCCESSFUL (status)) {
-+ LOCK (bepriv);
- e_book_backend_summary_remove_contact (
- bepriv->summary, uri);
- e_book_backend_cache_remove_contact (bepriv->cache, uri);
- *removed_ids = g_list_append (
- *removed_ids, g_strdup (uri));
-+ UNLOCK (bepriv);
- } else
- ret_status = http_status_to_pas (status);
- }
-@@ -2537,8 +2548,8 @@
- if (be->priv->cache)
- g_object_unref (be->priv->cache);
-
-- if (be->priv->create_mutex)
-- g_mutex_free (be->priv->create_mutex);
-+ if (be->priv->cache_lock)
-+ g_mutex_free (be->priv->cache_lock);
-
-
- g_free (be->priv);
-@@ -2608,7 +2619,7 @@
- priv->original_uri = NULL;
- priv->is_writable = TRUE;
-
-- priv->create_mutex = g_mutex_new ();
-+ priv->cache_lock = g_mutex_new ();
-
- backend->priv = priv;
- }