diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure evolution-exchange-2.22.1/calendar/e-cal-backend-exchange.c evolution-exchange-2.22.2/calendar/e-cal-backend-exchange.c
--- evolution-exchange-2.22.1/calendar/e-cal-backend-exchange.c 2008-04-04 11:18:43.000000000 +0200
+++ evolution-exchange-2.22.2/calendar/e-cal-backend-exchange.c 2008-05-23 13:23:45.000000000 +0200
@@ -391,6 +391,8 @@
return GNOME_Evolution_Calendar_NoSuchCal;
}
+ exchange_account_set_online (cbex->account);
+
exchange_account_connect (cbex->account, password, &acresult);
if (acresult != EXCHANGE_ACCOUNT_CONNECT_SUCCESS) {
g_mutex_unlock (cbex->priv->open_lock);
@@ -398,8 +400,6 @@
return GNOME_Evolution_Calendar_AuthenticationFailed;
}
- exchange_account_set_online (cbex->account);
-
cbex->folder = exchange_account_get_folder (cbex->account, uristr);
if (!cbex->folder) {
ESource *source;
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/calendar/e-cal-backend-exchange-tasks.c /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/calendar/e-cal-backend-exchange-tasks.c
--- evolution-exchange-2.22.1/calendar/e-cal-backend-exchange-tasks.c 2008-04-04 11:18:43.000000000 +0200
+++ evolution-exchange-2.22.2/calendar/e-cal-backend-exchange-tasks.c 2008-05-23 13:23:45.000000000 +0200
@@ -1330,7 +1330,7 @@
for (l = comps; l; l = l->next) {
const char *uid;
- char *calobj, *rid = NULL;
+ char *obj, *rid = NULL;
subcomp = l->data;
@@ -1345,6 +1345,7 @@
e_cal_component_get_uid (ecalcomp, &uid);
rid = e_cal_component_get_recurid_as_string (ecalcomp);
+ obj = (char *) e_cal_component_get_as_string (ecalcomp);
/*see if the object is there in the cache. if found, modify object, else create object*/
@@ -1353,28 +1354,27 @@
char *old_object;
e_cal_backend_exchange_cache_unlock (cbex);
- status = modify_task_object (backend, cal, calobj, CALOBJ_MOD_THIS, &old_object, NULL);
+ status = modify_task_object (backend, cal, obj, CALOBJ_MOD_THIS, &old_object, NULL);
if (status != GNOME_Evolution_Calendar_Success) {
g_free (rid);
goto error;
}
- e_cal_backend_notify_object_modified (E_CAL_BACKEND (backend), old_object, calobj);
+ e_cal_backend_notify_object_modified (E_CAL_BACKEND (backend), old_object, obj);
g_free (old_object);
} else {
char *returned_uid;
e_cal_backend_exchange_cache_unlock (cbex);
- calobj = (char *) icalcomponent_as_ical_string (subcomp);
- status = create_task_object (backend, cal, &calobj, &returned_uid);
+ status = create_task_object (backend, cal, &obj, &returned_uid);
if (status != GNOME_Evolution_Calendar_Success) {
- g_free (calobj);
+ g_free (obj);
g_free (rid);
goto error;
}
- e_cal_backend_notify_object_created (E_CAL_BACKEND (backend), calobj);
- g_free (calobj);
+ e_cal_backend_notify_object_created (E_CAL_BACKEND (backend), obj);
+ g_free (obj);
}
g_free (rid);
}
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/camel/camel-exchange-store.c /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/camel/camel-exchange-store.c
--- evolution-exchange-2.22.1/camel/camel-exchange-store.c 2008-04-04 11:18:32.000000000 +0200
+++ evolution-exchange-2.22.2/camel/camel-exchange-store.c 2008-05-23 13:23:45.000000000 +0200
@@ -376,6 +376,14 @@
}
}
+static void
+update_camel_stub (gpointer folder_name, gpointer folder, gpointer user_data)
+{
+ CamelExchangeFolder *exch_folder = CAMEL_EXCHANGE_FOLDER (folder);
+ if (exch_folder)
+ exch_folder->stub = (CamelStub *)user_data;
+}
+
static gboolean
exchange_connect (CamelService *service, CamelException *ex)
{
@@ -421,6 +429,8 @@
if (online_mode) {
camel_exchange_get_password (service, ex);
if (camel_exception_is_set (ex)) {
+ camel_object_unref (exch->stub);
+ exch->stub = NULL;
g_mutex_unlock (exch->connect_lock);
return FALSE;
}
@@ -447,12 +457,16 @@
camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM,
_("Could not authenticate to server. "
"(Password incorrect?)\n\n"));
+ camel_object_unref (exch->stub);
+ exch->stub = NULL;
g_mutex_unlock (exch->connect_lock);
return FALSE;
} else {
exch->stub_connected = TRUE;
}
+ g_hash_table_foreach (exch->folders, update_camel_stub, exch->stub);
+
g_mutex_unlock (exch->connect_lock);
return TRUE;
@@ -461,6 +475,13 @@
static gboolean
exchange_disconnect (CamelService *service, gboolean clean, CamelException *ex)
{
+
+ CamelExchangeStore *exch = CAMEL_EXCHANGE_STORE (service);
+
+ if (exch->stub) {
+ exch->stub = NULL;
+ }
+
return TRUE;
}
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/ChangeLog /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/ChangeLog
--- evolution-exchange-2.22.1/ChangeLog 2008-04-07 14:59:31.000000000 +0200
+++ evolution-exchange-2.22.2/ChangeLog 2008-05-26 13:51:14.000000000 +0200
@@ -1,3 +1,43 @@
+2008-05-26 Srinivasa Ragavan
+
+ * NEWS, configure.in: Evolution Exchange 2.22.2 release.
+
+2008-05-20 Chenthill Palanisamy
+
+ Downstream fix for bug #203481 (bnc)
+ * calendar/e-cal-backend-exchange-tasks.c: (receive_task_objects): Fix the
+ conflict in local variables.
+
+2008-05-13 Matthew Barnes
+
+ ** Fix for bug #523023
+
+ * storage/exchange-storage.c: (account_new_folder): Another leak fix.
+
+
+2008-05-02 Johnny Jacob
+
+ * NEWS, Configure.in : Evolution Exchange 2.22.1.1 release.
+
+2008-05-02 Suman Manjunath
+
+ * calendar/e-cal-backend-exchange.c: (open_calendar):
+ Set account mode to 'ONLINE_MODE' before attempting to connect.
+
+2008-05-02 Bharath Acharya
+
+ Fixes #358706 (bnc)
+
+ * camel/camel-exchange-store.c:
+ (update_camel_stub): Updates the camel stub value
+ (exchange_connect):
+ (exchange_disconnect): Reset the stub so that reconnect happens sanely.
+ * mail/mail-stub-listener.h: Store the stub value in the listener so
+ that we can use the folders_by_name (hash table) later.
+ * storage/exchange-component.c:
+ (impl_setLineStatus):
+ (new_connection): Update the hash table for the new stub
+
2008-04-07 Srinivasa Ragavan
* NEWS, configure.in: Evolution Exchange 2.22.1 release.
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/configure.in /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/configure.in
--- evolution-exchange-2.22.1/configure.in 2008-04-07 13:24:35.000000000 +0200
+++ evolution-exchange-2.22.2/configure.in 2008-05-25 12:37:31.000000000 +0200
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
-AC_INIT(evolution-exchange, 2.22.1, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution%20Exchange)
+AC_INIT(evolution-exchange, 2.22.2, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution%20Exchange)
AC_CONFIG_SRCDIR(storage)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/debian/changelog /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/debian/changelog
--- evolution-exchange-2.22.1/debian/changelog 2008-05-26 23:06:56.000000000 +0200
+++ evolution-exchange-2.22.2/debian/changelog 2008-05-26 23:06:56.000000000 +0200
@@ -1,3 +1,15 @@
+evolution-exchange (2.22.2-0ubuntu1) hardy-proposed; urgency=low
+
+ * New upstream versions:
+ - Bug fixes:
+ - #203481: Fix the conflict in local variables.
+ - #523023: Another leak fix.
+ - #358706: (Novell Bugzilla) If Evolution is switched from Offline to
+ Online, the stub is disconnected and no stub operations would work. Fixed.
+ - Set account mode to 'ONLINE_MODE' before attempting to connect.
+
+ -- Sebastien Bacher Mon, 26 May 2008 22:58:08 +0200
+
evolution-exchange (2.22.1-0ubuntu1) hardy; urgency=low
* New upstream version:
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/docs/reference/html/evolution-exchange.devhelp /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/docs/reference/html/evolution-exchange.devhelp
--- evolution-exchange-2.22.1/docs/reference/html/evolution-exchange.devhelp 2008-04-07 14:59:35.000000000 +0200
+++ evolution-exchange-2.22.2/docs/reference/html/evolution-exchange.devhelp 2008-05-26 13:51:19.000000000 +0200
@@ -58,23 +58,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/docs/reference/html/evolution-exchange.devhelp2 /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/docs/reference/html/evolution-exchange.devhelp2
--- evolution-exchange-2.22.1/docs/reference/html/evolution-exchange.devhelp2 2008-04-07 14:59:35.000000000 +0200
+++ evolution-exchange-2.22.2/docs/reference/html/evolution-exchange.devhelp2 2008-05-26 13:51:19.000000000 +0200
@@ -58,23 +58,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/mail/mail-stub-listener.h /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/mail/mail-stub-listener.h
--- evolution-exchange-2.22.1/mail/mail-stub-listener.h 2008-04-04 11:18:33.000000000 +0200
+++ evolution-exchange-2.22.2/mail/mail-stub-listener.h 2008-05-23 13:23:45.000000000 +0200
@@ -23,6 +23,7 @@
struct _MailStubListener {
GObject parent;
+ gpointer *stub;
char *socket_path;
GIOChannel *channel;
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/NEWS /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/NEWS
--- evolution-exchange-2.22.1/NEWS 2008-04-07 14:56:09.000000000 +0200
+++ evolution-exchange-2.22.2/NEWS 2008-05-26 13:50:12.000000000 +0200
@@ -1,3 +1,17 @@
+Evolution Exchange 2.22.2 2008-05-26
+------------------------------------
+
+Bug fixes:
+ #203481: Fix the conflict in local variables. (Chenthill Palanisamy)
+ #523023: Another leak fix. (Matthew Barnes)
+
+Evolution Exchange 2.22.1.1 2008-05-02
+------------------------------------
+
+Bug fixes:
+ #358706: (Novell Bugzilla) If Evolution is switched from Offline to Online, the stub is disconnected and no stub operations would work. Fixed. (Bharath)
+ Set account mode to 'ONLINE_MODE' before attempting to connect. (Suman Manjunath)
+
Evolution Exchange 2.22.1 2008-04-07
------------------------------------
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/storage/exchange-component.c /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/storage/exchange-component.c
--- evolution-exchange-2.22.1/storage/exchange-component.c 2008-04-04 11:18:42.000000000 +0200
+++ evolution-exchange-2.22.2/storage/exchange-component.c 2008-05-23 13:23:45.000000000 +0200
@@ -274,7 +274,7 @@
if (ev->_major == CORBA_NO_EXCEPTION) {
exchange_component_update_accounts (component, status);
g_signal_emit (component, linestatus_signal_id, 0,
- status ? ONLINE_MODE : OFFLINE_MODE);
+ priv->linestatus ? ONLINE_MODE : OFFLINE_MODE);
return;
} else {
CORBA_exception_free (ev);
@@ -342,7 +342,8 @@
new_connection (MailStubListener *listener, int cmd_fd, int status_fd,
ExchangeComponentAccount *baccount)
{
- MailStub *mse;
+ MailStub *stub;
+ MailStubExchange *mse, *mse_prev;
ExchangeAccount *account = baccount->account;
int mode;
@@ -354,7 +355,17 @@
goto end;
}
- mse = mail_stub_exchange_new (account, cmd_fd, status_fd);
+ stub = mail_stub_exchange_new (account, cmd_fd, status_fd);
+ mse = (MailStubExchange *) stub;
+ mse_prev = (MailStubExchange *) listener->stub;
+ if (mse_prev) {
+ g_hash_table_destroy (mse->folders_by_name);
+ mse->folders_by_name = mse_prev->folders_by_name;
+ mse_prev->folders_by_name = NULL;
+ }
+
+ g_object_unref (listener->stub);
+ listener->stub = mse;
/* FIXME : We need to close these sockets */
/*
if (exchange_account_connect (account, NULL, &result))
diff -Nru --exclude '*.html' --exclude aclocal.m4 --exclude configure /tmp/5p14N6izTP/evolution-exchange-2.22.1/storage/exchange-storage.c /tmp/ZhOamEs2rO/evolution-exchange-2.22.2/storage/exchange-storage.c
--- evolution-exchange-2.22.1/storage/exchange-storage.c 2008-04-04 11:18:42.000000000 +0200
+++ evolution-exchange-2.22.2/storage/exchange-storage.c 2008-05-23 13:23:45.000000000 +0200
@@ -129,7 +129,7 @@
{
const char *path = e_folder_exchange_get_path (folder);
- e_storage_new_folder (storage, path, folder);
+ e_storage_new_folder (storage, path, g_object_ref (folder));
if (e_folder_exchange_get_has_subfolders (folder)) {
e_storage_declare_has_subfolders (storage, path,
_("Searching..."));