[evolution-data-server] I#63 - [CalDAV/CardDAV] Incorrectly thinks an object is created in offline



commit fd2e90c2171a972845b795256b6684b931344965
Author: Milan Crha <mcrha redhat com>
Date:   Wed Dec 5 11:18:06 2018 +0100

    I#63 - [CalDAV/CardDAV] Incorrectly thinks an object is created in offline
    
    Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/63

 src/addressbook/backends/carddav/e-book-backend-carddav.c | 6 +++---
 src/calendar/backends/caldav/e-cal-backend-caldav.c       | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/src/addressbook/backends/carddav/e-book-backend-carddav.c 
b/src/addressbook/backends/carddav/e-book-backend-carddav.c
index 645883474..4cd904c6a 100644
--- a/src/addressbook/backends/carddav/e-book-backend-carddav.c
+++ b/src/addressbook/backends/carddav/e-book-backend-carddav.c
@@ -574,11 +574,11 @@ ebb_carddav_search_changes_cb (EBookCache *book_cache,
        g_return_val_if_fail (ccd != NULL, FALSE);
        g_return_val_if_fail (uid != NULL, FALSE);
 
-       /* Can be NULL for added components in offline mode */
-       if (extra && *extra) {
+       /* The 'extra' can be NULL for added contacts in offline mode */
+       if ((extra && *extra) || offline_state != E_OFFLINE_STATE_LOCALLY_CREATED) {
                EBookMetaBackendInfo *nfo;
 
-               nfo = g_hash_table_lookup (ccd->known_items, extra);
+               nfo = (extra && *extra) ? g_hash_table_lookup (ccd->known_items, extra) : NULL;
                if (nfo) {
                        if (g_strcmp0 (revision, nfo->revision) == 0) {
                                g_hash_table_remove (ccd->known_items, extra);
diff --git a/src/calendar/backends/caldav/e-cal-backend-caldav.c 
b/src/calendar/backends/caldav/e-cal-backend-caldav.c
index 46b6dcdc5..fda1a243c 100644
--- a/src/calendar/backends/caldav/e-cal-backend-caldav.c
+++ b/src/calendar/backends/caldav/e-cal-backend-caldav.c
@@ -623,11 +623,11 @@ ecb_caldav_search_changes_cb (ECalCache *cal_cache,
        g_return_val_if_fail (ccd != NULL, FALSE);
        g_return_val_if_fail (uid != NULL, FALSE);
 
-       /* Can be NULL for added components in offline mode */
-       if (extra && *extra && (!rid || !*rid)) {
+       /* The 'extra' can be NULL for added components in offline mode */
+       if (((extra && *extra) || offline_state != E_OFFLINE_STATE_LOCALLY_CREATED) && (!rid || !*rid)) {
                ECalMetaBackendInfo *nfo;
 
-               nfo = g_hash_table_lookup (ccd->known_items, extra);
+               nfo = (extra && *extra) ? g_hash_table_lookup (ccd->known_items, extra) : NULL;
                if (nfo) {
                        if (g_strcmp0 (revision, nfo->revision) == 0) {
                                g_hash_table_remove (ccd->known_items, extra);


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