davical: backslash escaping sometimes broken in vCard

Patrick Ohly patrick.ohly at intel.com
Fri Sep 9 09:17:02 UTC 2016


Dear DAViCal maintainers,

I've recently updated the SyncEvolution test setup such that it runs
tests against DAVICal 1.1.4-3 from Debian Testing and noticed a
problem that I have not seen before: when storing certain vCards on
the server and retrieving them again, backslashes in the NOTE property
(and perhaps elsewhere) are getting modified incorrectly.

This only happens for vCards which have no REV property.

Normally SyncEvolution includes a REV property when syncing, so this
might only affect testing and perhaps some users who use the command
line to import contacts into DAViCal directly. I'm more concerned about
not-yet-known cases where this decoding/encoding on the server-side
happens.

testcases/carddav.vcf | Client_Source_davical_carddav_testImport.B.test.dat
                     only in left file <
                                       > only in right file
-------------------------------------------------------------------------------
BEGIN:VCARD                              BEGIN:VCARD                           
N:2;;;user                               N:2;;;user                            
FN:user 2                                FN:user 2                             
NOTE:This user tests some of the adva    NOTE:This user tests some of the adva 
 nced aspects of vcards:\n- non-ASCII     nced aspects of vcards:\n- non-ASCII 
 characters (with umlauts in the name)    characters (with umlauts in the name)
 \n- line break (in this note and the     \n- line break (in this note and the 
 mailing address)\n- long lines (in th    mailing address)\n- long lines (in th
 is note)\n- special characters (in th    is note)\n- special characters (in th
 is note)\n- tabs (in this note)\n\nVe    is note)\n- tabs (in this note)\n\nVe
 ry long line\, very very long this ti    ry long line\, very very long this ti
 me... still not finished... blah blah    me... still not finished... blah blah
  blah blah blah 1 2 3 4 5 6 7 8 9 10      blah blah blah 1 2 3 4 5 6 7 8 9 10 
 11 12 13 14 15 16\n\ncomma \,\ncolon     11 12 13 14 15 16\n\ncomma \,\ncolon 
 :\nsemicolon \;\nbackslash \\\n\nThe  |  :\nsemicolon \;\nbackslash \\n\nThe s
 same\, in the middle of a line:\ncomm |  ame\, in the middle of a line:\ncomma
 a \, comma\ncolon : colon\nsemicolon  |   \, comma\ncolon : colon\nsemicolon \
 \; semicolon\nbackslash \\ backslash\ |  ; semicolon\nbackslash \ backslash\n\
 n\nA tab       tab done\n      line starts with |  nA tab      tab done\n      line starts with t
  tab                                  |  ab                                   
VERSION:3.0                              VERSION:3.0                           
END:VCARD                                END:VCARD                             
-------------------------------------------------------------------------------

Note that the \\ gets replaced with a single \.

My two testcases are:

BEGIN:VCARD
VERSION:3.0
UID:unique-id-user2
NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCII c
 haracters (with umlauts in the name)\n- line break (in this note and the
  mailing address)\n- long lines (in this note)\n- special characters (in
  this note)\n- tabs (in this note)\n\nVery long line\, very very long th
 is time... still not finished... blah blah blah blah blah 1 2 3 4 5 6 7 
 8 9 10 11 12 13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbackslash 
 \\\n\nThe same\, in the middle of a line:\ncomma \, comma\ncolon : col
 on\nsemicolon \; semicolon\nbackslash \\ backslash\n\nA tab    tab done\n  
 line starts with tab
FN:user 2
N:2;;;user;
END:VCARD
 
BEGIN:VCARD
VERSION:3.0
REV:20160908T170847Z
UID:syuid288166.212340157754280
N:1;;;user;
FN:user 1
NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCII c
 haracters (with umlauts in the name)\n- line break (in this note and the ma
 iling address)\n- long lines (in this note)\n- special characters (in this 
 note)\n- tabs (in this note)\n\nVery long line\, very very long this time..
 . still not finished... blah blah blah blah blah 1 2 3 4 5 6 7 8 9 10 11 12
  13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbackslash \\\n\nThe same\,
  in the middle of a line:\ncomma \, comma\ncolon : colon\nsemicolon \; semi
 colon\nbackslash \\ backslash\n\nA tab     tab done\n  line starts with tab
END:VCARD

Content of NOTE gets mangled for the first vCard, but not the second.

Here's the relevant excerpt of the CardDAV communication:

[DEVELOPER 00:00:01] stderr: POST /davical/caldav.php/tester2/Test_davical_carddav_1/?add_member HTTP/1.1
[DEVELOPER 00:00:01] stderr: Connection: TE
[DEVELOPER 00:00:01] stderr: TE: trailers
[DEVELOPER 00:00:01] stderr: Host: localhost:9009
[DEVELOPER 00:00:01] stderr: Content-Length: 704
[DEVELOPER 00:00:01] stderr: Content-Type: text/vcard; charset=utf-8
[DEVELOPER 00:00:01] stderr: Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DEVELOPER 00:00:01] stderr: User-Agent: SyncEvolution
[DEVELOPER 00:00:01] stderr: 
[DEVELOPER 00:00:01] stderr: Sending request-line and headers:
[DEVELOPER 00:00:01] stderr: Sending request body:
[DEVELOPER 00:00:01] stderr: Body block (704 bytes):
[DEVELOPER 00:00:01] stderr: [BEGIN:VCARD
[DEVELOPER 00:00:01] stderr: VERSION:3.0
[DEVELOPER 00:00:01] stderr: UID:unique-id-user2
[DEVELOPER 00:00:01] stderr: NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCII c
[DEVELOPER 00:00:01] stderr:  haracters (with umlauts in the name)\n- line break (in this note and the
[DEVELOPER 00:00:01] stderr:   mailing address)\n- long lines (in this note)\n- special characters (in
[DEVELOPER 00:00:01] stderr:   this note)\n- tabs (in this note)\n\nVery long line\, very very long th
[DEVELOPER 00:00:01] stderr:  is time... still not finished... blah blah blah blah blah 1 2 3 4 5 6 7 
[DEVELOPER 00:00:01] stderr:  8 9 10 11 12 13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbackslash 
[DEVELOPER 00:00:01] stderr:  \\\n\nThe same\, in the middle of a line:\ncomma \, comma\ncolon : col
[DEVELOPER 00:00:01] stderr:  on\nsemicolon \; semicolon\nbackslash \\ backslash\n\nA tab       tab done\n      
[DEVELOPER 00:00:01] stderr:  line starts with tab
[DEVELOPER 00:00:01] stderr: FN:user 2
[DEVELOPER 00:00:01] stderr: N:2;;;user;
[DEVELOPER 00:00:01] stderr: END:VCARD
[DEVELOPER 00:00:01] stderr: ]
[DEVELOPER 00:00:01] stderr: Request sent; retry is 1.
[DEVELOPER 00:00:01] stderr: [status-line] < HTTP/1.1 201 Created
[DEVELOPER 00:00:01] stderr: [hdr] Server: 1.1
[DEVELOPER 00:00:01] stderr: Header Name: [server], Value: [1.1]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [1, 2, 3, access-control, calendar-access, calendar-schedule]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy]
[DEVELOPER 00:00:01] stderr: [hdr] Location: http://localhost:9009/davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf
[DEVELOPER 00:00:01] stderr: Header Name: [location], Value: [http://localhost:9009/davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf]
[DEVELOPER 00:00:01] stderr: [hdr] X-DAViCal-Version: DAViCal/1.1.4; DB/1.2.12
[DEVELOPER 00:00:01] stderr: Header Name: [x-davical-version], Value: [DAViCal/1.1.4; DB/1.2.12]
[DEVELOPER 00:00:01] stderr: [hdr] Content-type: text/plain; charset="utf-8"
[DEVELOPER 00:00:01] stderr: Header Name: [content-type], Value: [text/plain; charset="utf-8"]
[DEVELOPER 00:00:01] stderr: [hdr] Content-Length: 0
[DEVELOPER 00:00:01] stderr: Header Name: [content-length], Value: [0]
[DEVELOPER 00:00:01] stderr: [hdr] Date: Fri, 09 Sep 2016 08:14:26 GMT
[DEVELOPER 00:00:01] stderr: Header Name: [date], Value: [Fri, 09 Sep 2016 08:14:26 GMT]
[DEVELOPER 00:00:01] stderr: [hdr] 
[DEVELOPER 00:00:01] stderr: End of headers.
[DEVELOPER 00:00:01] stderr: Running post_headers hooks
[DEVELOPER 00:00:01] stderr: Running post_send hooks
[DEVELOPER 00:00:01] stderr: ah_post_send (#0), code is 201 (want 401), WWW-Authenticate is (none)
[DEVELOPER 00:00:01] stderr: Request ends, status 201 class 2xx, error line:
[DEVELOPER 00:00:01] stderr: 201 Created
[DEBUG 00:00:01] add item status: <status 1.1, code 201, class 2, Created>
[DEBUG 00:00:01] new item mapped to unique-id-user2.vcf
[DEVELOPER 00:00:01] stderr: Running destroy hooks.
[DEVELOPER 00:00:01] stderr: Request ends.
[DEBUG 00:00:01] starting PROPFIND, credentials unverified, deadline in 120.0s
[DEVELOPER 00:00:01] stderr: ah_create, for WWW-Authenticate
[DEVELOPER 00:00:01] stderr: Running pre_send hooks
[DEVELOPER 00:00:01] stderr: auth: Sending 'Basic' response.
[DEVELOPER 00:00:01] stderr: Sending request headers:
[DEVELOPER 00:00:01] stderr: PROPFIND /davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf HTTP/1.1
[DEVELOPER 00:00:01] stderr: Connection: TE
[DEVELOPER 00:00:01] stderr: TE: trailers
[DEVELOPER 00:00:01] stderr: Host: localhost:9009
[DEVELOPER 00:00:01] stderr: Depth: 0
[DEVELOPER 00:00:01] stderr: Content-Length: 141
[DEVELOPER 00:00:01] stderr: Content-Type: application/xml
[DEVELOPER 00:00:01] stderr: Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DEVELOPER 00:00:01] stderr: User-Agent: SyncEvolution
[DEVELOPER 00:00:01] stderr: 
[DEVELOPER 00:00:01] stderr: Sending request-line and headers:
[DEVELOPER 00:00:01] stderr: Sending request body:
[DEVELOPER 00:00:01] stderr: Body block (141 bytes):
[DEVELOPER 00:00:01] stderr: [<?xml version="1.0" encoding="utf-8"?>
[DEVELOPER 00:00:01] stderr: <propfind xmlns="DAV:"><prop>
[DEVELOPER 00:00:01] stderr: <getetag xmlns="DAV:"/>
[DEVELOPER 00:00:01] stderr: <resourcetype xmlns="DAV:"/>
[DEVELOPER 00:00:01] stderr: </prop></propfind>
[DEVELOPER 00:00:01] stderr: ]
[DEVELOPER 00:00:01] stderr: Request sent; retry is 1.
[DEVELOPER 00:00:01] stderr: [status-line] < HTTP/1.1 207 Multi-status
[DEVELOPER 00:00:01] stderr: [hdr] Server: 1.1
[DEVELOPER 00:00:01] stderr: Header Name: [server], Value: [1.1]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [1, 2, 3, access-control, calendar-access, calendar-schedule]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy]
[DEVELOPER 00:00:01] stderr: [hdr] ETag: "4edfcd770d60600fc5ca057f62567d8c"
[DEVELOPER 00:00:01] stderr: Header Name: [etag], Value: ["4edfcd770d60600fc5ca057f62567d8c"]
[DEVELOPER 00:00:01] stderr: [hdr] X-DAViCal-Version: DAViCal/1.1.4; DB/1.2.12
[DEVELOPER 00:00:01] stderr: Header Name: [x-davical-version], Value: [DAViCal/1.1.4; DB/1.2.12]
[DEVELOPER 00:00:01] stderr: [hdr] Content-type: text/xml; charset="utf-8"
[DEVELOPER 00:00:01] stderr: Header Name: [content-type], Value: [text/xml; charset="utf-8"]
[DEVELOPER 00:00:01] stderr: [hdr] Content-Length: 355
[DEVELOPER 00:00:01] stderr: Header Name: [content-length], Value: [355]
[DEVELOPER 00:00:01] stderr: [hdr] Date: Fri, 09 Sep 2016 08:14:26 GMT
[DEVELOPER 00:00:01] stderr: Header Name: [date], Value: [Fri, 09 Sep 2016 08:14:26 GMT]
[DEVELOPER 00:00:01] stderr: [hdr] 
[DEVELOPER 00:00:01] stderr: End of headers.
[DEVELOPER 00:00:01] stderr: Running post_headers hooks
[DEVELOPER 00:00:01] stderr: Reading 355 bytes of response body.
[DEVELOPER 00:00:01] stderr: Got 355 bytes.
[DEVELOPER 00:00:01] stderr: Read block (355 bytes):
[DEVELOPER 00:00:01] stderr: [<?xml version="1.0" encoding="utf-8" ?>
[DEVELOPER 00:00:01] stderr: <multistatus xmlns="DAV:">
[DEVELOPER 00:00:01] stderr:  <response>
[DEVELOPER 00:00:01] stderr:   <href>/davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf</href>
[DEVELOPER 00:00:01] stderr:   <propstat>
[DEVELOPER 00:00:01] stderr:    <prop>
[DEVELOPER 00:00:01] stderr:     <getetag>"85c7cfd93c7303d3b938c87edcd27102"</getetag>
[DEVELOPER 00:00:01] stderr:     <resourcetype/>
[DEVELOPER 00:00:01] stderr:    </prop>
[DEVELOPER 00:00:01] stderr:    <status>HTTP/1.1 200 OK</status>
[DEVELOPER 00:00:01] stderr:   </propstat>
[DEVELOPER 00:00:01] stderr:  </response>
[DEVELOPER 00:00:01] stderr: </multistatus>
[DEVELOPER 00:00:01] stderr: ]
[DEBUG 00:00:01] item unique-id-user2.vcf = rev 85c7cfd93c7303d3b938c87edcd27102
...

[DEVELOPER 00:00:01] stderr: POST /davical/caldav.php/tester2/Test_davical_carddav_1/?add_member HTTP/1.1
[DEVELOPER 00:00:01] stderr: Connection: TE
[DEVELOPER 00:00:01] stderr: TE: trailers
[DEVELOPER 00:00:01] stderr: Host: localhost:9009
[DEVELOPER 00:00:01] stderr: Content-Length: 735
[DEVELOPER 00:00:01] stderr: Content-Type: text/vcard; charset=utf-8
[DEVELOPER 00:00:01] stderr: Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DEVELOPER 00:00:01] stderr: User-Agent: SyncEvolution
[DEVELOPER 00:00:01] stderr: 
[DEVELOPER 00:00:01] stderr: Sending request-line and headers:
[DEVELOPER 00:00:01] stderr: Sending request body:
[DEVELOPER 00:00:01] stderr: Body block (735 bytes):
[DEVELOPER 00:00:01] stderr: [BEGIN:VCARD
[DEVELOPER 00:00:01] stderr: VERSION:3.0
[DEVELOPER 00:00:01] stderr: REV:20160908T170847Z
[DEVELOPER 00:00:01] stderr: UID:syuid288166.212340157754280
[DEVELOPER 00:00:01] stderr: N:1;;;user;
[DEVELOPER 00:00:01] stderr: FN:user 1
[DEVELOPER 00:00:01] stderr: NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCII c
[DEVELOPER 00:00:01] stderr:  haracters (with umlauts in the name)\n- line break (in this note and the ma
[DEVELOPER 00:00:01] stderr:  iling address)\n- long lines (in this note)\n- special characters (in this 
[DEVELOPER 00:00:01] stderr:  note)\n- tabs (in this note)\n\nVery long line\, very very long this time..
[DEVELOPER 00:00:01] stderr:  . still not finished... blah blah blah blah blah 1 2 3 4 5 6 7 8 9 10 11 12
[DEVELOPER 00:00:01] stderr:   13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbackslash \\\n\nThe same\,
[DEVELOPER 00:00:01] stderr:   in the middle of a line:\ncomma \, comma\ncolon : colon\nsemicolon \; semi
[DEVELOPER 00:00:01] stderr:  colon\nbackslash \\ backslash\n\nA tab    tab done\n      line starts with tab
[DEVELOPER 00:00:01] stderr: END:VCARD
[DEVELOPER 00:00:01] stderr: ]
[DEVELOPER 00:00:01] stderr: Request sent; retry is 1.
[DEVELOPER 00:00:01] stderr: [status-line] < HTTP/1.1 201 Created
[DEVELOPER 00:00:01] stderr: [hdr] Server: 1.1
[DEVELOPER 00:00:01] stderr: Header Name: [server], Value: [1.1]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [1, 2, 3, access-control, calendar-access, calendar-schedule]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy]
[DEVELOPER 00:00:01] stderr: [hdr] Location: http://localhost:9009/davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf
[DEVELOPER 00:00:01] stderr: Header Name: [location], Value: [http://localhost:9009/davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf]
[DEVELOPER 00:00:01] stderr: [hdr] X-DAViCal-Version: DAViCal/1.1.4; DB/1.2.12
[DEVELOPER 00:00:01] stderr: Header Name: [x-davical-version], Value: [DAViCal/1.1.4; DB/1.2.12]
[DEVELOPER 00:00:01] stderr: [hdr] Content-type: text/plain; charset="utf-8"
[DEVELOPER 00:00:01] stderr: Header Name: [content-type], Value: [text/plain; charset="utf-8"]
[DEVELOPER 00:00:01] stderr: [hdr] Content-Length: 0
[DEVELOPER 00:00:01] stderr: Header Name: [content-length], Value: [0]
[DEVELOPER 00:00:01] stderr: [hdr] Date: Fri, 09 Sep 2016 08:14:26 GMT
[DEVELOPER 00:00:01] stderr: Header Name: [date], Value: [Fri, 09 Sep 2016 08:14:26 GMT]
[DEVELOPER 00:00:01] stderr: [hdr] 
[DEVELOPER 00:00:01] stderr: End of headers.
[DEVELOPER 00:00:01] stderr: Running post_headers hooks
[DEVELOPER 00:00:01] stderr: Running post_send hooks
[DEVELOPER 00:00:01] stderr: ah_post_send (#0), code is 201 (want 401), WWW-Authenticate is (none)
[DEVELOPER 00:00:01] stderr: Request ends, status 201 class 2xx, error line:
[DEVELOPER 00:00:01] stderr: 201 Created
[DEBUG 00:00:01] add item status: <status 1.1, code 201, class 2, Created>
[DEBUG 00:00:01] new item mapped to syuid288166.212340157754280.vcf
[DEVELOPER 00:00:01] stderr: Running destroy hooks.
[DEVELOPER 00:00:01] stderr: Request ends.
[DEBUG 00:00:01] starting PROPFIND, credentials unverified, deadline in 120.0s
[DEVELOPER 00:00:01] stderr: ah_create, for WWW-Authenticate
[DEVELOPER 00:00:01] stderr: Running pre_send hooks
[DEVELOPER 00:00:01] stderr: auth: Sending 'Basic' response.
[DEVELOPER 00:00:01] stderr: Sending request headers:
[DEVELOPER 00:00:01] stderr: PROPFIND /davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf HTTP/1.1
[DEVELOPER 00:00:01] stderr: Connection: TE
[DEVELOPER 00:00:01] stderr: TE: trailers
[DEVELOPER 00:00:01] stderr: Host: localhost:9009
[DEVELOPER 00:00:01] stderr: Depth: 0
[DEVELOPER 00:00:01] stderr: Content-Length: 141
[DEVELOPER 00:00:01] stderr: Content-Type: application/xml
[DEVELOPER 00:00:01] stderr: Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DEVELOPER 00:00:01] stderr: User-Agent: SyncEvolution
[DEVELOPER 00:00:01] stderr: 
[DEVELOPER 00:00:01] stderr: Sending request-line and headers:
[DEVELOPER 00:00:01] stderr: Sending request body:
[DEVELOPER 00:00:01] stderr: Body block (141 bytes):
[DEVELOPER 00:00:01] stderr: [<?xml version="1.0" encoding="utf-8"?>
[DEVELOPER 00:00:01] stderr: <propfind xmlns="DAV:"><prop>
[DEVELOPER 00:00:01] stderr: <getetag xmlns="DAV:"/>
[DEVELOPER 00:00:01] stderr: <resourcetype xmlns="DAV:"/>
[DEVELOPER 00:00:01] stderr: </prop></propfind>
[DEVELOPER 00:00:01] stderr: ]
[DEVELOPER 00:00:01] stderr: Request sent; retry is 1.
[DEVELOPER 00:00:01] stderr: [status-line] < HTTP/1.1 207 Multi-status
[DEVELOPER 00:00:01] stderr: [hdr] Server: 1.1
[DEVELOPER 00:00:01] stderr: Header Name: [server], Value: [1.1]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [1, 2, 3, access-control, calendar-access, calendar-schedule]
[DEVELOPER 00:00:01] stderr: [hdr] DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
[DEVELOPER 00:00:01] stderr: Header Name: [dav], Value: [extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy]
[DEVELOPER 00:00:01] stderr: [hdr] ETag: "db267ae6bb49f9157e13f8b3aadcd84e"
[DEVELOPER 00:00:01] stderr: Header Name: [etag], Value: ["db267ae6bb49f9157e13f8b3aadcd84e"]
[DEVELOPER 00:00:01] stderr: [hdr] X-DAViCal-Version: DAViCal/1.1.4; DB/1.2.12
[DEVELOPER 00:00:01] stderr: Header Name: [x-davical-version], Value: [DAViCal/1.1.4; DB/1.2.12]
[DEVELOPER 00:00:01] stderr: [hdr] Content-type: text/xml; charset="utf-8"
[DEVELOPER 00:00:01] stderr: Header Name: [content-type], Value: [text/xml; charset="utf-8"]
[DEVELOPER 00:00:01] stderr: [hdr] Content-Length: 367
[DEVELOPER 00:00:01] stderr: Header Name: [content-length], Value: [367]
[DEVELOPER 00:00:01] stderr: [hdr] Date: Fri, 09 Sep 2016 08:14:26 GMT
[DEVELOPER 00:00:01] stderr: Header Name: [date], Value: [Fri, 09 Sep 2016 08:14:26 GMT]
[DEVELOPER 00:00:01] stderr: [hdr] 
[DEVELOPER 00:00:01] stderr: End of headers.
[DEVELOPER 00:00:01] stderr: Running post_headers hooks
[DEVELOPER 00:00:01] stderr: Reading 367 bytes of response body.
[DEVELOPER 00:00:01] stderr: Got 367 bytes.
[DEVELOPER 00:00:01] stderr: Read block (367 bytes):
[DEVELOPER 00:00:01] stderr: [<?xml version="1.0" encoding="utf-8" ?>
[DEVELOPER 00:00:01] stderr: <multistatus xmlns="DAV:">
[DEVELOPER 00:00:01] stderr:  <response>
[DEVELOPER 00:00:01] stderr:   <href>/davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf</href>
[DEVELOPER 00:00:01] stderr:   <propstat>
[DEVELOPER 00:00:01] stderr:    <prop>
[DEVELOPER 00:00:01] stderr:     <getetag>"ee702bdc6e7e255fd9989bbf0632bc6c"</getetag>
[DEVELOPER 00:00:01] stderr:     <resourcetype/>
[DEVELOPER 00:00:01] stderr:    </prop>
[DEVELOPER 00:00:01] stderr:    <status>HTTP/1.1 200 OK</status>
[DEVELOPER 00:00:01] stderr:   </propstat>
[DEVELOPER 00:00:01] stderr:  </response>
[DEVELOPER 00:00:01] stderr: </multistatus>
[DEVELOPER 00:00:01] stderr: ]
[DEBUG 00:00:01] item syuid288166.212340157754280.vcf = rev ee702bdc6e7e255fd9989bbf0632bc6c
...
[DEVELOPER 00:00:02] stderr: REPORT /davical/caldav.php/tester2/Test_davical_carddav_1/ HTTP/1.1
[DEVELOPER 00:00:02] stderr: Connection: TE
[DEVELOPER 00:00:02] stderr: TE: trailers
[DEVELOPER 00:00:02] stderr: Host: localhost:9009
[DEVELOPER 00:00:02] stderr: Content-Length: 384
[DEVELOPER 00:00:02] stderr: Depth: 0
[DEVELOPER 00:00:02] stderr: Content-Type: application/xml; charset="utf-8"
[DEVELOPER 00:00:02] stderr: Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[DEVELOPER 00:00:02] stderr: User-Agent: SyncEvolution
[DEVELOPER 00:00:02] stderr: 
[DEVELOPER 00:00:02] stderr: Sending request-line and headers:
[DEVELOPER 00:00:02] stderr: Sending request body:
[DEVELOPER 00:00:02] stderr: Body block (384 bytes):
[DEVELOPER 00:00:02] stderr: [<?xml version="1.0" encoding="utf-8" ?>
[DEVELOPER 00:00:02] stderr: <C:addressbook-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav">
[DEVELOPER 00:00:02] stderr: <D:prop>
[DEVELOPER 00:00:02] stderr: <D:getetag/>
[DEVELOPER 00:00:02] stderr: <C:address-data/>
[DEVELOPER 00:00:02] stderr: </D:prop>
[DEVELOPER 00:00:02] stderr: <D:href>/davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf</D:href>
[DEVELOPER 00:00:02] stderr: <D:href>/davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf</D:href>
[DEVELOPER 00:00:02] stderr: </C:addressbook-multiget>]
[DEVELOPER 00:00:02] stderr: Request sent; retry is 1.
[DEVELOPER 00:00:02] stderr: [status-line] < HTTP/1.1 207 Multi-status
[DEVELOPER 00:00:02] stderr: [hdr] Server: 1.1
[DEVELOPER 00:00:02] stderr: Header Name: [server], Value: [1.1]
[DEVELOPER 00:00:02] stderr: [hdr] DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
[DEVELOPER 00:00:02] stderr: Header Name: [dav], Value: [1, 2, 3, access-control, calendar-access, calendar-schedule]
[DEVELOPER 00:00:02] stderr: [hdr] DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
[DEVELOPER 00:00:02] stderr: Header Name: [dav], Value: [extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy]
[DEVELOPER 00:00:02] stderr: [hdr] ETag: "71ac67ebaf38ed5fb164ee1696038ded"
[DEVELOPER 00:00:02] stderr: Header Name: [etag], Value: ["71ac67ebaf38ed5fb164ee1696038ded"]
[DEVELOPER 00:00:02] stderr: [hdr] X-DAViCal-Version: DAViCal/1.1.4; DB/1.2.12
[DEVELOPER 00:00:02] stderr: Header Name: [x-davical-version], Value: [DAViCal/1.1.4; DB/1.2.12]
[DEVELOPER 00:00:02] stderr: [hdr] Content-type: text/xml; charset="utf-8"
[DEVELOPER 00:00:02] stderr: Header Name: [content-type], Value: [text/xml; charset="utf-8"]
[DEVELOPER 00:00:02] stderr: [hdr] Content-Length: 2205
[DEVELOPER 00:00:02] stderr: Header Name: [content-length], Value: [2205]
[DEVELOPER 00:00:02] stderr: [hdr] Connection: close
[DEVELOPER 00:00:02] stderr: Header Name: [connection], Value: [close]
[DEVELOPER 00:00:02] stderr: [hdr] Date: Fri, 09 Sep 2016 08:14:27 GMT
[DEVELOPER 00:00:02] stderr: Header Name: [date], Value: [Fri, 09 Sep 2016 08:14:27 GMT]
[DEVELOPER 00:00:02] stderr: [hdr] 
[DEVELOPER 00:00:02] stderr: End of headers.
[DEVELOPER 00:00:02] stderr: Running post_headers hooks
[DEVELOPER 00:00:02] stderr: Reading 2205 bytes of response body.
[DEVELOPER 00:00:02] stderr: Got 2205 bytes.
[DEVELOPER 00:00:02] stderr: Read block (2205 bytes):
[DEVELOPER 00:00:02] stderr: [<?xml version="1.0" encoding="utf-8" ?>
[DEVELOPER 00:00:02] stderr: <multistatus xmlns="DAV:" xmlns:VC="urn:ietf:params:xml:ns:carddav">
[DEVELOPER 00:00:02] stderr:  <response>
[DEVELOPER 00:00:02] stderr:   <href>/davical/caldav.php/tester2/Test_davical_carddav_1/unique-id-user2.vcf</href>
[DEVELOPER 00:00:02] stderr:   <propstat>
[DEVELOPER 00:00:02] stderr:    <prop>
[DEVELOPER 00:00:02] stderr:     <getetag>"85c7cfd93c7303d3b938c87edcd27102"</getetag>
[DEVELOPER 00:00:02] stderr:     <VC:address-data>BEGIN:VCARD
[DEVELOPER 00:00:02] stderr: VERSION:3.0
[DEVELOPER 00:00:02] stderr: UID:unique-id-user2
[DEVELOPER 00:00:02] stderr: NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCI
[DEVELOPER 00:00:02] stderr:  I characters (with umlauts in the name)\n- line break (in this note and
[DEVELOPER 00:00:02] stderr:   
[DEVELOPER 00:00:02] stderr:  the mailing address)\n- long lines (in this note)\n- special characters
[DEVELOPER 00:00:02] stderr:   
[DEVELOPER 00:00:02] stderr:  (in this note)\n- tabs (in this note)\n\nVery long line\, very very lon
[DEVELOPER 00:00:02] stderr:  g
[DEVELOPER 00:00:02] stderr:   this time... still not finished... blah blah blah blah blah 1 2 3 4 5 
[DEVELOPER 00:00:02] stderr:  6
[DEVELOPER 00:00:02] stderr:   7 8 9 10 11 12 13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbacksla
[DEVELOPER 00:00:02] stderr:  s
[DEVELOPER 00:00:02] stderr:  h \\n\nThe same\, in the middle of a line:\ncomma \, comma\ncolon : col
[DEVELOPER 00:00:02] stderr:  o
[DEVELOPER 00:00:02] stderr:  n\nsemicolon \; semicolon\nbackslash \ backslash\n\nA tab         tab done\n      l
[DEVELOPER 00:00:02] stderr:  i
[DEVELOPER 00:00:02] stderr:  ne starts with tab
[DEVELOPER 00:00:02] stderr: FN:user 2
[DEVELOPER 00:00:02] stderr: N:2;;;user;
[DEVELOPER 00:00:02] stderr: REV:20160909T081426Z
[DEVELOPER 00:00:02] stderr: END:VCARD
[DEVELOPER 00:00:02] stderr: </VC:address-data>
[DEVELOPER 00:00:02] stderr:    </prop>
[DEVELOPER 00:00:02] stderr:    <status>HTTP/1.1 200 OK</status>
[DEVELOPER 00:00:02] stderr:   </propstat>
[DEVELOPER 00:00:02] stderr:  </response>
[DEVELOPER 00:00:02] stderr:  <response>
[DEVELOPER 00:00:02] stderr:   <href>/davical/caldav.php/tester2/Test_davical_carddav_1/syuid288166.212340157754280.vcf</href>
[DEVELOPER 00:00:02] stderr:   <propstat>
[DEVELOPER 00:00:02] stderr:    <prop>
[DEVELOPER 00:00:02] stderr:     <getetag>"ee702bdc6e7e255fd9989bbf0632bc6c"</getetag>
[DEVELOPER 00:00:02] stderr:     <VC:address-data>BEGIN:VCARD
[DEVELOPER 00:00:02] stderr: VERSION:3.0
[DEVELOPER 00:00:02] stderr: REV:20160908T170847Z
[DEVELOPER 00:00:02] stderr: UID:syuid288166.212340157754280
[DEVELOPER 00:00:02] stderr: N:1;;;user;
[DEVELOPER 00:00:02] stderr: FN:user 1
[DEVELOPER 00:00:02] stderr: NOTE:This user tests some of the advanced aspects of vcards:\n- non-ASCI
[DEVELOPER 00:00:02] stderr:  I characters (with umlauts in the name)\n- line break (in this note and 
[DEVELOPER 00:00:02] stderr:  the mailing address)\n- long lines (in this note)\n- special characters 
[DEVELOPER 00:00:02] stderr:  (in this note)\n- tabs (in this note)\n\nVery long line\, very very long
[DEVELOPER 00:00:02] stderr:   this time... still not finished... blah blah blah blah blah 1 2 3 4 5 6
[DEVELOPER 00:00:02] stderr:   7 8 9 10 11 12 13 14 15 16\n\ncomma \,\ncolon :\nsemicolon \;\nbackslas
[DEVELOPER 00:00:02] stderr:  h \\\n\nThe same\, in the middle of a line:\ncomma \, comma\ncolon : col
[DEVELOPER 00:00:02] stderr:  on\nsemicolon \; semicolon\nbackslash \\ backslash\n\nA tab       tab done\n      
[DEVELOPER 00:00:02] stderr:  line starts with tab
[DEVELOPER 00:00:02] stderr: END:VCARD
[DEVELOPER 00:00:02] stderr: </VC:address-data>
[DEVELOPER 00:00:02] stderr:    </prop>
[DEVELOPER 00:00:02] stderr:    <status>HTTP/1.1 200 OK</status>
[DEVELOPER 00:00:02] stderr:   </propstat>
[DEVELOPER 00:00:02] stderr:  </response>
[DEVELOPER 00:00:02] stderr: </multistatus>
[DEVELOPER 00:00:02] stderr: ]


-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.






More information about the SyncEvolution mailing list