[GroupDAV] Problem with VCALENDARs with DESCRIPTION field containing line feeds

Samuli Seppänen groupdav@opengroupware.org
Tue, 24 Jul 2007 16:59:24 +0300


Hi!

I've finally managed to sort out most issues with Zidestore 1.5 <-> 
GroupDAV connector <-> Funambol <-> Nokia S60 synchronization. There is 
one problem, however... Whenever I create an event in OGo and write a 
multiline comment for it, it doesn't get synced at all. All VCALENDARs 
that contain a multiline  DESCRIPTION fail consistently, so linefeeds 
are obviously the source of the problem. These multiline DESCRIPTION 
events do appear in the GroupDAV connector logs, but they never gets to 
the Nokia. I suppose GroupDAV connector is rejecting it.

The OGo event comment get mapped to DESCRIPTION in the VCALENDAR's 
VEVENT subsection. When I view the multiline DESCRIPTION field with 
either "less" or "vi", this is what I get:

--- snip ---

DESCRIPTION&#58;John Doe\, mobile. 555 123456^M\n^M\nSee&#58; 
http&#58;//www.johndoe.com/ (Pages are not in use yet)

--- snip ---

This is from GroupDAV connector logs, of course. This does not look 
right. There should not be any ^M 's (either a CR or LF, I can't never 
remember).

 From RFC2445 (http://www.faqs.org/rfcs/rfc2445.html):

description        = "DESCRIPTION" descparam ":" text CRLF

--- snip ---

  Example: The following is an example of the property with formatted
    line breaks in the property value:

      DESCRIPTION:Meeting to provide technical review for "Phoenix"
        design.\n Happy Face Conference Room. Phoenix design team
        MUST attend this meeting.\n RSVP to team leader.

    The following is an example of the property with folding of long
    lines:

      DESCRIPTION:Last draft of the new novel is to be completed
        for the editor's proof today.

--- snip ---

This clearly states that the DESCRIPTION field should contain only \n as 
the linefeed, or CRLF linefeed. Or possibly both, if I understand 
correctly. No DOS/Mac linefeed (just CR or LF, not CRLF).

Is this just Zidestore serving invalid VCALENDAR files, or is GroupDAV 
connector doing something it shouldn't?

Samuli