[CalendarServer-dev] Bug related to Example 7.8.6 in the RFC

Michael Rasmussen mir at datanom.net
Thu Apr 3 15:42:26 PDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

As this is my first posting on the list I hope for some patience:-)

Background to this posting:
I am currently working on a caldav library developed in C. Part of
testing my library for conformance and compatibility is running tests
against some reference implementations of RFC4791. Of these reference
implementation I have chosen ICalender and DAViCal (rscds). My
implementation so far is 100% compatible with DAViCal and, hopefully,
conforming to RFC4791. For information and source visit
http://sourceforge.net/projects/libcaldav/

One specific test against ICalendar server is given problems which, to
the best of my knowledge, is caused by a non-conformance behaviour by
ICalendar server with regards to example 7.8.6 in the RFC. The error
message from ICalendar server is:

Collection stored on server: 
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp.//CalDAV Client//EN
BEGIN:VEVENT
DTSTAMP:20080404T182145Z
DTSTART:20080415T151500Z
DTEND:20080415T162500Z
SUMMARY:Frodo's birthday party. Please respond.
UID:20080404T182145Z-123401 at example.com
END:VEVENT
END:VCALENDAR

Purpose for request is to modify the above collection. The steps are:
1) Make a text-match search using UID to retrieve etag for collection
2) Request modification of collection which is related to the retrieved
etag.

Complete dump of communication:
2008-04-04 00:30:18+0200 [-] [caldav-8009]  [AMP,client]
OPTIONS /calendars/users/admin/calendar/ HTTP/1.1 2008-04-04
00:30:18+0200 [-] [caldav-8010]  [AMP,client]
REPORT /calendars/users/admin/calendar/ HTTP/1.1 2008-04-04
00:30:18+0200 [-] [caldav-8010]  [-] Attribute collation is unexpected
in {urn:ietf:params:xml:ns:caldav}text-match element

A full debug report follows:
$ test/src/caldav-test -d -uadmin -padmin -a modify
http://localhost:8008/calendars/users/admin/calendar/ <
test/ics/modify.ics
== Info: About to connect() to localhost port 8008 (#0)
== Info: Trying 127.0.0.1... == Info: connected
== Info: Connected to localhost (127.0.0.1) port 8008 (#0)
== Info: Server auth using Basic with user 'admin' => Send header, 236
bytes (0xec) 
0000: REPORT /calendars/users/admin/calendar/ HTTP/1.1
0032: Authorization: Basic YWRtaW46YWRtaW4= 
0059: User-Agent: libcurl-agent/0.1 0078: Host: localhost:8008
008e: Accept: */*
009b: Content-Type: application/xml; charset="utf-8"
00cb: Depth: 1
00d5: Content-Length: 466
00ea: => Send data, 466 bytes (0x1d2)
0000: <?xml version="1.0" encoding="utf-8" ?><C:calendar-query xmlns:C
0040: ="urn:ietf:params:xml:ns:caldav">  <D:prop xmlns:D="DAV:">    <D
0080: :getetag/>    <C:calendar-data/>  </D:prop>  <C:filter>    <C:co
00c0: mp-filter name="VCALENDAR">      <C:comp-filter name="VEVENT">  
0100:       <C:prop-filter name="UID">
0122: <C:text-match collation="i;octet">20080404t182145z-123401 at exampl
0162: e.com</C:text-match>
0178: </C:prop-filter>      </C:comp-filter>    </C:comp-filter>  </C:
01b8: filter></C:calendar-query>
<= Recv header, 27 bytes (0x1b)
0000: HTTP/1.1 207 Multi-Status
<= Recv header, 20 bytes (0x14)
0000: Content-Length: 69
<= Recv header, 22 bytes (0x16)
0000: Accept-Ranges: bytes
<= Recv header, 104 bytes (0x68)
0000: Server: Twisted/2.5.0+rUnknown TwistedWeb/[twisted.web2, version
0040:  0.2.0 (SVN rUnknown)] TwistedCalDAV/?
<= Recv header, 46 bytes (0x2e)
0000: Last-Modified: Thu, 03 Apr 2008 10:16:09 GMT
<= Recv header, 150 bytes (0x96)
0000: DAV: 1, access-control, calendar-access, calendar-schedule, cale
0040: ndar-availability, inbox-availability, calendar-proxy, calendars
0080: erver-private-events
<= Recv header, 30 bytes (0x1e)
0000: ETag: "3C17D728-4C-47F4AE69"
<= Recv header, 37 bytes (0x25)
0000: Date: Thu, 03 Apr 2008 22:30:18 GMT
<= Recv header, 24 bytes (0x18)
0000: Content-Type: text/xml
<= Recv header, 2 bytes (0x2)
0000: 
<= Recv data, 69 bytes (0x45)
0000: <?xml version='1.0' encoding='UTF-8'?>
0028: <multistatus xmlns='DAV:'/>
== Info: Connection #0 to host localhost left intact
== Info: Closing connection #0
Error
Code: 207
<?xml version='1.0' encoding='UTF-8'?>
<multistatus xmlns='DAV:'/>

I do not understand the error message from ICalendar since according to
RFC4791: CalDAV servers are REQUIRED to support the "i;ascii-casemap"
and "i;octet" collations, as described in [RFC4790]

- -- 
Hilsen/Regards
Michael Rasmussen

Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xD3C9A00E
mir <at> datanom <dot> net
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
- --------------------------------------------------------------
Your temporary financial embarrassment will be relieved in a surprising
manner.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFH9V1SQQOPluUB9RwRAgWFAKC9gZLLnyG5KxpMAwWtdRVAgkYIzgCcCEBa
/8mh6zMed2h5B6kw9/PxexQ=
=GqPY
-----END PGP SIGNATURE-----


More information about the calendarserver-dev mailing list