Re: [evolution-patches] [exchange-calendar-alarms] fix 316710



attaching the revised patch with changes mentioned here.

  regards.

>>> Sarfraaz Ahmed <asarfraaz novell com> 11/08/05 11:48 AM >>>
Hi,

The str_uri which is used to store the clients loaded should not be
changed, since it is the key for a different hash table. There are many
other places that depend on this. So this might affect the assumptions
there.

Instead, leave str_uri as it is, and create a new pass_key that would be
generated from the EUri, and free it after fetching the password.

>         priv = an->priv;
> -       str_uri = e_source_get_uri (source);
> +       uri = e_source_get_uri (source);
> +       e_uri = e_uri_new (uri);
> +       str_uri = e_uri_to_string (e_uri, FALSE);
> +       e_uri_free (e_uri);
> +       g_free (uri);


Something like, 

e_uri = e_uri_new (str_uri);
pass_key = e_uri_to_string (e_uri, FALSE);
....

Thanks
-- Sarfraaz

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2833
diff -u -p -w -r1.2833 ChangeLog
--- ChangeLog	21 Oct 2005 10:02:34 -0000	1.2833
+++ ChangeLog	8 Nov 2005 06:40:12 -0000
@@ -1,3 +1,10 @@
+2005-11-08  P S Chakravarthi <pchakravarthi novell com>
+
+	Fixes #316710
+	* gui/alarm-notify (alarm_notify_add_calendar):
+	Built the uri string to be used as key for hashtable entries from EUri 
+	rather than directly from e_source API. 
+
 2005-10-21  Mubeen Jukaku  <jmubeen novell com>
 
 	Sankar Committting for Mubeen
Index: gui/alarm-notify/alarm-notify.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify.c,v
retrieving revision 1.51
diff -u -p -w -r1.51 alarm-notify.c
--- gui/alarm-notify/alarm-notify.c	13 Jul 2005 10:36:15 -0000	1.51
+++ gui/alarm-notify/alarm-notify.c	8 Nov 2005 06:40:12 -0000
@@ -326,13 +326,18 @@ alarm_notify_add_calendar (AlarmNotify *
 {
 	AlarmNotifyPrivate *priv;
 	ECal *client;
+	EUri *e_uri;
 	char *str_uri;
+	char *pass_key;
 	g_return_if_fail (an != NULL);
 	g_return_if_fail (IS_ALARM_NOTIFY (an));
 	
-
+	/* Make sure the key used in for getting password is properly generated for all types of backends */
 	priv = an->priv;
 	str_uri = e_source_get_uri (source);
+	e_uri = e_uri_new (str_uri);
+	pass_key = e_uri_to_string (e_uri, FALSE);
+	e_uri_free (e_uri);
 	
 	g_mutex_lock (an->priv->mutex);
 	/* See if we already know about this uri */
@@ -345,9 +350,10 @@ alarm_notify_add_calendar (AlarmNotify *
 	   session skip this source loading. we do not really want to prompt for auth from alarm dameon*/
 
 	if ((e_source_get_property (source, "auth") && 
-	     (!e_passwords_get_password (e_source_get_property(source, "auth-domain"), str_uri)))) {
+	     (!e_passwords_get_password (e_source_get_property(source, "auth-domain"), pass_key)))) {
 		g_mutex_unlock (an->priv->mutex);
 		g_free (str_uri);
+		g_free (pass_key);
 		return;
 	}
 	client = auth_new_cal_from_source (source, source_type);
@@ -357,6 +363,7 @@ alarm_notify_add_calendar (AlarmNotify *
 		g_signal_connect (G_OBJECT (client), "cal_opened", G_CALLBACK (cal_opened_cb), an);
 		e_cal_open_async (client, FALSE);
 	}
+	g_free (pass_key);
 	g_free (str_uri);
 	g_mutex_unlock (an->priv->mutex);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]