? .deps
? .libs
? e-cal-backend-caldav-factory.lo
? e-cal-backend-caldav.lo
? libecalbackendcaldav.la
Index: e-cal-backend-caldav.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/backends/caldav/e-cal-backend-caldav.c,v
retrieving revision 1.9
diff -u -r1.9 e-cal-backend-caldav.c
--- e-cal-backend-caldav.c	24 Jul 2006 13:09:12 -0000	1.9
+++ e-cal-backend-caldav.c	11 Nov 2006 18:32:39 -0000
@@ -625,6 +625,8 @@
 	xmlDocPtr          doc;
 	int                i, n;
 	gboolean           res;
+	char*              strtmp;
+	SoupUri*           uritmp;
 
 	g_return_val_if_fail (soup_message != NULL, FALSE);
 	g_return_val_if_fail (objs != NULL || len != NULL, FALSE);
@@ -671,6 +673,16 @@
 		xpres = xpath_eval (xpctx, XPATH_HREF, i + 1);
 		object->href = xp_object_get_string (xpres);
 
+		/* Make sure that href is an complete, absolute URI */
+		strtmp = strstr(object->href, "://");
+		if (strtmp == NULL) {
+			uritmp = soup_uri_new_with_base (soup_message_get_uri (soup_message), object->href);
+			strtmp = soup_uri_to_string (uritmp, FALSE);
+			soup_uri_free (uritmp);
+			g_free (object->href);
+			object->href = strtmp;
+		}
+
 		xpres = xpath_eval (xpctx,XPATH_STATUS , i + 1);
 		object->status = xp_object_get_status (xpres);
 
@@ -920,6 +932,11 @@
 	g_assert (object != NULL && object->href != NULL);
 	
 	message = soup_message_new (SOUP_METHOD_GET, object->href);
+
+	if (message == NULL) {
+		g_warning ("Can't create request SOUP message\n");
+		return GNOME_Evolution_Calendar_OtherError;
+	}
 	
 	soup_message_add_header (message->request_headers, 
 				 "User-Agent", "Evolution/" VERSION);
