summaryrefslogtreecommitdiff
path: root/src/calendar/backends/caldav/e-cal-backend-caldav.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/calendar/backends/caldav/e-cal-backend-caldav.c')
-rw-r--r--src/calendar/backends/caldav/e-cal-backend-caldav.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/calendar/backends/caldav/e-cal-backend-caldav.c b/src/calendar/backends/caldav/e-cal-backend-caldav.c
index 5f2c9bbad..7fc2e8e5e 100644
--- a/src/calendar/backends/caldav/e-cal-backend-caldav.c
+++ b/src/calendar/backends/caldav/e-cal-backend-caldav.c
@@ -1524,7 +1524,13 @@ ecb_caldav_save_component_sync (ECalMetaBackend *meta_backend,
if (overwrite_existing && g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_PRECONDITION_FAILED)) {
g_clear_error (&local_error);
- local_error = EC_ERROR (E_CLIENT_ERROR_OUT_OF_SYNC);
+
+ /* Pretend success when using the serer version on conflict,
+ the component will be updated during the refresh */
+ if (conflict_resolution == E_CONFLICT_RESOLUTION_KEEP_SERVER)
+ success = TRUE;
+ else
+ local_error = EC_ERROR (E_CLIENT_ERROR_OUT_OF_SYNC);
}
if (local_error) {
@@ -1613,7 +1619,13 @@ ecb_caldav_remove_component_sync (ECalMetaBackend *meta_backend,
success = TRUE;
} else if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_PRECONDITION_FAILED)) {
g_clear_error (&local_error);
- local_error = EC_ERROR (E_CLIENT_ERROR_OUT_OF_SYNC);
+
+ /* Pretend success when using the serer version on conflict,
+ the component will be updated during the refresh */
+ if (conflict_resolution == E_CONFLICT_RESOLUTION_KEEP_SERVER)
+ success = TRUE;
+ else
+ local_error = EC_ERROR (E_CLIENT_ERROR_OUT_OF_SYNC);
}
if (local_error) {