[evolution-patches] Patch for Calendar Authentication problems
- From: Harish Krishnaswamy <kharish novell com>
- To: patches <evolution-patches lists ximian com>
- Subject: [evolution-patches] Patch for Calendar Authentication problems
- Date: Tue, 16 Mar 2004 21:41:20 +0530
The patch fixes the calendar authentication problems observed while
attempting to enter the password in the Evolution Password dialog box.
It involves moving open_calendar call into async_idle_cb so that the
main thread catches the callback and rearranging a couple of mutex
lock/unlock sequences.
harish
Index: calendar/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.206
diff -u -p -r1.206 ChangeLog
--- calendar/ChangeLog 15 Mar 2004 19:37:09 -0000 1.206
+++ calendar/ChangeLog 16 Mar 2004 16:07:48 -0000
@@ -1,3 +1,9 @@
+2004-03-16 Harish K <kharish novell com>
+
+ * libecal/e-cal.c : Move open_calendar call into async_idle_cb
+ and rearrange mutex lock/unlock sequences. This fixes the calendar
+ authentication problems observed while using the Password Dialog.
+
2004-03-15 Rodrigo Moya <rodrigo ximian com>
* libedata-cal/e-cal-backend-sexp.c (func_occur_in_time_range): expand
Index: calendar/libecal/e-cal.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/libecal/e-cal.c,v
retrieving revision 1.47
diff -u -p -r1.47 e-cal.c
--- calendar/libecal/e-cal.c 10 Mar 2004 11:21:15 -0000 1.47
+++ calendar/libecal/e-cal.c 16 Mar 2004 16:07:52 -0000
@@ -1481,8 +1481,6 @@ open_calendar (ECal *ecal, gboolean only
g_mutex_lock (our_op->mutex);
- g_mutex_unlock (ecal->priv->mutex);
-
CORBA_exception_init (&ev);
priv->load_state = E_CAL_LOAD_LOADING;
@@ -1498,7 +1496,8 @@ open_calendar (ECal *ecal, gboolean only
e_calendar_remove_op (ecal, our_op);
g_mutex_unlock (our_op->mutex);
e_calendar_free_op (our_op);
-
+ g_mutex_unlock (ecal->priv->mutex);
+
CORBA_exception_free (&ev);
g_warning (G_STRLOC ": Unable to contact backend");
@@ -1524,6 +1523,8 @@ open_calendar (ECal *ecal, gboolean only
else
priv->load_state = E_CAL_LOAD_NOT_LOADED;
+ g_mutex_unlock (ecal->priv->mutex);
+
E_CALENDAR_CHECK_STATUS (*status, error);
}
@@ -1566,6 +1567,7 @@ async_idle_cb (gpointer data)
{
ECalAsyncData *ccad = data;
+ ccad->result = open_calendar (ccad->ecal, ccad->exists, NULL,
&ccad->status);
g_signal_emit (G_OBJECT (ccad->ecal), e_cal_signals[CAL_OPENED], 0,
ccad->status);
/* free memory */
@@ -1580,7 +1582,6 @@ open_async (gpointer data)
{
ECalAsyncData *ccad = data;
- ccad->result = open_calendar (ccad->ecal, ccad->exists, NULL,
&ccad->status);
g_idle_add ((GSourceFunc) async_idle_cb, ccad);
return GINT_TO_POINTER (ccad->result);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]