aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog7
-rw-r--r--calendar/gui/e-pub-utils.c15
2 files changed, 20 insertions, 2 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index b38fab6522..6eb297ff06 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-09 Dinesh Layek <LDinesh@novell.com>
+
+ Fixes #273322
+ * gui/e-pub-utils.c
+ (e_pub_publish): removed the source from uri->calendars when the
+ calendar backend no longer exists.
+
2005-11-08 P. S. Chakravarthi <pchakravarthi@novell.com>
Fixes #316710
diff --git a/calendar/gui/e-pub-utils.c b/calendar/gui/e-pub-utils.c
index 7aad545314..ab39e13d81 100644
--- a/calendar/gui/e-pub-utils.c
+++ b/calendar/gui/e-pub-utils.c
@@ -191,7 +191,7 @@ e_pub_publish (gboolean publish) {
uri_config_list = calendar_config_get_free_busy ();
for (l = uri_config_list; l != NULL; l = l->next) {
- GSList *p =NULL;
+ GSList *p =NULL, *q;
EPublishUri *uri;
ECalComponent *clone = NULL;
gboolean cloned = FALSE;
@@ -236,8 +236,9 @@ e_pub_publish (gboolean publish) {
/* We still need to set the last_pub_time */
uri->last_pub_time = 0;
is_publish_time (uri);
-
+ q = NULL;
for (p = uri->calendars; p != NULL; p = p->next) {
+
GList *comp_list = NULL;
gchar *source_uid;
ESource * source;
@@ -247,12 +248,15 @@ e_pub_publish (gboolean publish) {
source_uid = g_strdup (p->data);
source = e_source_list_peek_source_by_uid (source_list, source_uid);
+
if (source)
client = auth_new_cal_from_source (source, E_CAL_SOURCE_TYPE_EVENT);
if (!client) {
g_warning (G_STRLOC ": Could not publish Free/Busy: Calendar backend no longer exists");
g_free (source_uid);
+ g_free (p->data);
+ q = g_slist_append (q, p);
continue;
}
@@ -263,6 +267,7 @@ e_pub_publish (gboolean publish) {
error = NULL;
g_object_unref (client);
+ client = NULL;
g_free (source_uid);
continue;
}
@@ -299,10 +304,16 @@ e_pub_publish (gboolean publish) {
g_free (email);
g_object_unref (client);
+ client = NULL;
g_free (source_uid);
}
}
+ for(p = q; p!=NULL; p = p->next) {
+ uri->calendars = g_slist_delete_link (uri->calendars, p->data);
+ }
+ g_slist_free (q);
+
/* add password to the uri */
password = e_passwords_get_password ("Calendar",
(gchar *)uri->location);