[evolution-patches] fix for the bug #305590



Hi,
   Have attached the patch.

thanks, chenthill.
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.489
diff -u -p -r1.489 ChangeLog
--- ChangeLog	3 Aug 2005 08:34:18 -0000	1.489
+++ ChangeLog	4 Aug 2005 08:29:11 -0000
@@ -1,3 +1,10 @@
+2005-08-04  Chenthill Palanisamy  <pchenthill novell com>
+
+	Fixes #305590
+	* backends/groupwise/e-cal-backend-groupwise-utils.c:
+	(e_gw_connection_get_freebusy_info): Get the FreeBusyStatus
+	element from the response before getting the FreeBusyInfo.
+
 2005-08-02  Chenthill Palanisamy  <pchenthill novell com>
 
 	Fixes #310328
Index: backends/groupwise/e-cal-backend-groupwise-utils.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c,v
retrieving revision 1.60
diff -u -p -r1.60 e-cal-backend-groupwise-utils.c
--- backends/groupwise/e-cal-backend-groupwise-utils.c	3 Aug 2005 08:34:18 -0000	1.60
+++ backends/groupwise/e-cal-backend-groupwise-utils.c	4 Aug 2005 08:29:13 -0000
@@ -1478,14 +1478,14 @@ e_gw_connection_get_freebusy_info (EGwCo
         SoupSoapMessage *msg;
         SoupSoapResponse *response;
         EGwConnectionStatus status;
-        SoupSoapParameter *param, *subparam;
-        const char *session;
+        SoupSoapParameter *param, *subparam, *param_outstanding;
+        const char *session, *outstanding = NULL;
 	gboolean resend_request = TRUE;
 	int request_iteration = 0;
 
 	g_return_val_if_fail (E_IS_GW_CONNECTION (cnc), E_GW_CONNECTION_STATUS_INVALID_CONNECTION);
 
-        /* Perform startFreeBusySession */
+	/* Perform startFreeBusySession */
         status = start_freebusy_session (cnc, users, start, end, &session); 
         /*FIXME log error messages  */
         if (status != E_GW_CONNECTION_STATUS_OK)
@@ -1516,34 +1516,33 @@ e_gw_connection_get_freebusy_info (EGwCo
                 return status;
         }
 
-        /* FIXME  the FreeBusyStats are not used currently.  */
-        param = soup_soap_response_get_first_parameter_by_name (response, "freeBusyInfo");
+	param = soup_soap_response_get_first_parameter_by_name (response, "freeBusyStats");
         if (!param) {
                 g_object_unref (response);
                 g_object_unref (msg);
                 return E_GW_CONNECTION_STATUS_INVALID_RESPONSE;
         }
 
-	for (subparam = soup_soap_parameter_get_first_child_by_name (param, "freeBusyStats");
-	     subparam != NULL;
-	     subparam = soup_soap_parameter_get_next_child_by_name (subparam, "freeBusyStats")) {
-		SoupSoapParameter *param_outstanding;
-		const char *outstanding = NULL;
-
-		param_outstanding = soup_soap_parameter_get_first_child_by_name (subparam, "outstanding");
-		if (param_outstanding)
-			outstanding = soup_soap_parameter_get_string_value (param_outstanding);
-		/* Try 12 times - this is approximately 2 minutes of time to
-		 * obtain the free/busy information from the server */
-		if (outstanding && strcmp (outstanding, "0") && (request_iteration < 12)) {
-			request_iteration++;
-			g_object_unref (msg);
-		        g_object_unref (response);
-			g_usleep (10000000);
-			goto resend;
-		}
-
+	param_outstanding = soup_soap_parameter_get_first_child_by_name (param, "outstanding");
+	if (param_outstanding)
+		outstanding = soup_soap_parameter_get_string_value (param_outstanding);
+	/* Try 12 times - this is approximately 2 minutes of time to
+	 * obtain the free/busy information from the server */
+	if (outstanding && strcmp (outstanding, "0") && (request_iteration < 12)) {
+		request_iteration++;
+		g_object_unref (msg);
+		g_object_unref (response);
+		g_usleep (10000000);
+		goto resend;
 	}
+
+        /* FIXME  the FreeBusyStats are not used currently.  */
+        param = soup_soap_response_get_first_parameter_by_name (response, "freeBusyInfo");
+        if (!param) {
+                g_object_unref (response);
+                g_object_unref (msg);
+                return E_GW_CONNECTION_STATUS_INVALID_RESPONSE;
+        }
 
 	resend_request = FALSE;
 


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