View Issue Details

IDProjectCategoryView StatusLast Update
0002493SOGoBackend Calendarpublic2014-09-15 19:47
ReporterMarten Gajda Assigned Toludovic  
Status resolvedResolutionfixed 
Product Version2.1.0 
Target Version2.2.9Fixed in Version2.2.9 
Summary0002493: sync-token property not returned in PROPFIND

According to each collection that supports sync-collection MUST return a sync-token.
That doesn't work with SOGo.

Steps To Reproduce

Sending this request:

<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:sync-token />



<D:multistatus xmlns:D="DAV:">
<D:status>HTTP/1.1 200 OK</D:status>
<D:status>HTTP/1.1 404 Not Found</D:status>

instead is should return:

<?xml version="1.0" encoding="utf-8"?>
<multistatus xmlns="DAV:">
<status>HTTP/1.1 200 OK</status>

TagsNo tags attached.




2013-11-11 18:04

administrator   ~0006213

Are you sure you read the spec correctly?

It says:

Purpose: Contains the value of the synchronization token as it would
be returned by a DAV:sync-collection report.

That's a REPORT.

ALL the examples in the spec use REPORT, just like DAV clients we're dealing with.

Marten Gajda

Marten Gajda

2013-11-12 09:45

reporter   ~0006219

Yes, sync-collection is a report, but you can query the sync-token in advance using a regular PROPFIND request, just like you would get a CTag.

They key in the purpose above is the word "as".

Purpose: Contains the value of the synchronization token as it would
be returned by a DAV:sync-collection report.

It means that the sync-token returned in response to the propfind request is the same that would be returned by a sync-collection request. It's meant to get the sync-token only, not the entire change set like a sync-collection report would return.

I use the following propfind request in CalDAV-Sync to get the sync-token in advance, along with a couple of other properties:

<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<E:calendar-color xmlns:E=";/>
<B:getctag xmlns:B=";/>
<A:sync-token />
<C:supported-calendar-component-set xmlns:C="urn:ietf:params:xml:ns:caldav"/>

That way I know if anything has changed before I send a sync-collection request. The CTag is not part of the official standards, it's more like a workaround. That's why I prefer the sync-token if there is any.

I have to check for the supported-report-set anyway if I want to use sync-collection, so why not get the sync-token with the same request to safe an additional sync-collection request if nothing has changed.



2014-09-15 19:47

administrator   ~0007517

Issue History

Date Modified Username Field Change
2013-11-11 17:58 Marten Gajda New Issue
2013-11-11 18:04 ludovic Note Added: 0006213
2013-11-12 09:45 Marten Gajda Note Added: 0006219
2013-11-19 14:02 ludovic Severity major => feature
2014-09-15 19:47 ludovic Target Version => 2.2.9
2014-09-15 19:47 ludovic Note Added: 0007517
2014-09-15 19:47 ludovic Status new => resolved
2014-09-15 19:47 ludovic Fixed in Version => 2.2.9
2014-09-15 19:47 ludovic Resolution open => fixed
2014-09-15 19:47 ludovic Assigned To => ludovic