[CalendarServer-users] Modifying entries fails with
evolution-2.6 due to wrong etag
Wilfredo Sánchez Vega
wsanchez at wsanchez.net
Tue Sep 19 12:13:24 PDT 2006
On Sep 19, 2006, at 11:27 AM, Cyrus Daboo wrote:
> Well of course there has been much debate about the CalDAV specs
> definition of what servers should do on PUT. CalDAV says that a
> server SHOULD return a strong ETag when PUT does not change the
> data being stored (which is currently always the case with our
> server - but may not always be true in future). Clients then know
> that if they get back a strong ETag, there was no modification of
> the data on the server and hence no need to follow the PUT with an
> immediate GET to see what changed. In the absence of a strong ETag,
> a good client ought to GET the data it just stored with its new
> ETag just to stay in sync.
Right, but:
a) I still disagree with the idea of putting ETag hooey into CalDAV.
b) We don't have a strong ETag to return at the end of a PUT
unless we do the equivalent of sleep(1) first.
c) Right now we're using logic that lived in web2.dav, not
twistedcaldav, so CalDAV's rules don't apply. See (a), which
basically requires us to override the ETag logic in the CalDAV
subclasses.
> One alternative to the weak ETag issue, though, would be to not use
> computed ETags and instead cache a (definitely) unique ETag as a
> private property of the resource. The server then reads/writes that
> value as appropriate and it can always be a strong ETag.
Well, that ETag has to be computed at some point.
We could use a checksum as an ETag (and also then include the
checksum header). Computing checksums isn't super cheap, but that
may be OK if it's just at creation time.
You might think an increasing integer would work, but that doesn't
work if a resource is deleted and then re-added, unless we're somehow
going to cache the ETags even after deletion.
-wsv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2746 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/calendarserver-users/attachments/20060919/d246b5ec/smime.bin
More information about the calendarserver-users
mailing list