evolution-data-server/bnc-164676-eds-stuck-tight-loop.patch

108 lines
4.2 KiB
Diff

--- addressbook/backends/groupwise/e-book-backend-groupwise.c.orig 2006-04-16 20:19:03.086611569 +0200
+++ addressbook/backends/groupwise/e-book-backend-groupwise.c 2006-04-16 20:24:43.271873993 +0200
@@ -2814,8 +2814,41 @@ update_address_book_deltas (EBookBackend
printf("sequence differs but no changes found !!!\n");
break;
}
- printf("add_list size:%d\n", g_list_length(add_list));
- printf("delete_list size:%d\n", g_list_length(delete_list));
+ if (enable_debug) {
+ printf("add_list size:%d\n", g_list_length(add_list));
+ printf("delete_list size:%d\n", g_list_length(delete_list));
+ }
+
+ for (; delete_list != NULL; delete_list = g_list_next(delete_list)) {
+ const char *id;
+
+ /* deleted from the server */
+ contact = e_contact_new ();
+ fill_contact_from_gw_item (contact,
+ E_GW_ITEM (delete_list->data),
+ ebgw->priv->categories_by_id);
+ if (enable_debug)
+ printf("contact email:%s, contact name:%s\n", (char *) e_contact_get(contact, E_CONTACT_EMAIL_1), (char *) e_contact_get(contact, E_CONTACT_GIVEN_NAME));
+ e_contact_set (contact,
+ E_CONTACT_BOOK_URI,
+ priv->original_uri);
+ id = e_contact_get_const (contact, E_CONTACT_UID);
+
+ if (e_book_backend_cache_check_contact (ebgw->priv->cache, id)) {
+ contact_num++;
+
+ if (book_view) {
+ status_msg = g_strdup_printf (_("Updating contacts cache (%d)... "),
+ contact_num);
+ book_view_notify_status (book_view, status_msg);
+ g_free (status_msg);
+ }
+ e_book_backend_cache_remove_contact (ebgw->priv->cache, id);
+ e_book_backend_summary_remove_contact (ebgw->priv->summary, id);
+ }
+ g_object_unref(contact);
+ g_object_unref (delete_list->data);
+ }
for (; add_list != NULL; add_list = g_list_next(add_list)) {
const char *id;
@@ -2851,34 +2884,6 @@ update_address_book_deltas (EBookBackend
g_object_unref (add_list->data);
}
- for (; delete_list != NULL; delete_list = g_list_next(delete_list)) {
- const char *id;
-
- /* deleted from the server */
- contact = e_contact_new ();
- fill_contact_from_gw_item (contact,
- E_GW_ITEM (delete_list->data),
- ebgw->priv->categories_by_id);
- e_contact_set (contact,
- E_CONTACT_BOOK_URI,
- priv->original_uri);
- id = e_contact_get_const (contact, E_CONTACT_UID);
-
- if (e_book_backend_cache_check_contact (ebgw->priv->cache, id)) {
- contact_num++;
-
- if (book_view) {
- status_msg = g_strdup_printf (_("Updating contacts cache (%d)... "),
- contact_num);
- book_view_notify_status (book_view, status_msg);
- g_free (status_msg);
- }
- e_book_backend_cache_remove_contact (ebgw->priv->cache, id);
- e_book_backend_summary_remove_contact (ebgw->priv->summary, id);
- }
- g_object_unref(contact);
- g_object_unref (delete_list->data);
- }
cache_last_sequence += contact_num;
}
--- servers/groupwise/e-gw-connection.c.orig 2006-04-16 20:19:30.383515263 +0200
+++ servers/groupwise/e-gw-connection.c 2006-04-16 20:19:40.699856797 +0200
@@ -764,7 +764,7 @@ e_gw_connection_get_items_delta (EGwConn
SoupSoapMessage *msg;
SoupSoapResponse *response;
EGwConnectionStatus status;
- SoupSoapParameter *param, *subparam;
+ SoupSoapParameter *param, *subparam, *subsubparam;
g_return_val_if_fail (E_IS_GW_CONNECTION (cnc), E_GW_CONNECTION_STATUS_INVALID_OBJECT);
@@ -819,11 +819,11 @@ e_gw_connection_get_items_delta (EGwConn
item = e_gw_item_new_from_soap_parameter (cnc->priv->user_email, container, subparam);
- subparam = soup_soap_parameter_get_first_child_by_name(subparam, "sync");
- if (subparam) {
+ subsubparam = soup_soap_parameter_get_first_child_by_name(subparam, "sync");
+ if (subsubparam) {
char *value;
- value = soup_soap_parameter_get_string_value (subparam);
+ value = soup_soap_parameter_get_string_value (subsubparam);
if (!strcmp (value, "add") || !strcmp (value, "update")) {
*add_list = g_list_append (*add_list, item);
} else if (!strcmp (value, "delete")) {