Ticket modified by Christoph Kaulich at 2013/06/12 12:05
Tracking System - Bugs
Category - CalDAV/CardDAV
Version - Trunk
Status - Open
Resolution - Invalid
Completed - 0%
Priority - 5 - medium
Created by - Christoph Kaulich
Created on - 2013/05/06 11:50
Assigned to - Ralf Becker
Summary - #3229 - @-sign in UID make caldav/lightning not working
I try to create an event by importing a ics through thunderbird/lightning. The event get's created but it does not show up in lightning anymore. I suspect the @ in the filename to be the bad point. I am not sure if egw or lightning is to blame, so also a bug at mozilla is filed.
I attached a wireshark log and the ics file.
Lightning is 2.4a2 and egw is uptodate svn 1.8.004.
Comment by Christoph Kaulich at 2013/06/12 12:05:
I will contact the lightning people with this information.
Comment by Ralf Becker at 2013/06/10 09:29:
checked that with Cadaver:
a) uploaded an ics with an @ sign using nc (netcat):
PUT test@... HTTP/1.1
PUT test%40test.ics HTTP/1.1
Both give a test@... caldav_name in database and get urlencoded in PROPFIND (Cadaver ls) requests. First form without urlencoding is strictly speaking not correct, but works also.
b) using a wildcard with GET does not work, because Cadaver sends literally it to WebDAV server, without expanding it first. So it does NOT understand wildcards in GET.
c) using GET test@... works, Cadaver automatically url encodes it in it's request:
That's the correct behavior and file get downloaded successfull.
d) if you use an already url encoded name, Cadaver encodes the percent sign again to test%2540test.ics and download obviously fails.
As far as I can tell EGroupware behaves correct in that regard.
Comment by Christoph Kaulich at 2013/05/27 12:50:
One more comment:
Putting and listing an ics with cadaver; i can see a difference of the file created 'Bahn%40Fahrplan.ics' and the result of the ls B* which is 'Bahn%2540Fahrplan.ics'. Trying to download the filename from the listing, then fails with a 404.
The shell from the cadaver session:
dav:/egroupware/groupdav.php/calendar/> put Bahn@...
Uploading Bahn@... to `/egroupware/groupdav.php/calendar/Bahn%40Fahrplan.ics':
Progress: [=============================>] 100,0% of 1243 bytes succeeded.
dav:/egroupware/groupdav.php/calendar/> ls Bahn*
[Matching... 1 match.]
Listing collection `/egroupware/groupdav.php/calendar/Bahn%2540Fahrplan.ics/': collection is empty.
dav:/egroupware/groupdav.php/calendar/> get Bahn%2540Fahrplan.ics
Downloading `/egroupware/groupdav.php/calendar/Bahn%252540Fahrplan.ics' to Bahn%2540Fahrplan.ics: [.] failed:
404 Not Found
Comment by Christoph Kaulich at 2013/05/27 10:00:
I think the problem is, that lightning constructs a filename from the UID which contains a @ sign.
The file is created in egw, it is there and found by other clients, but not by lightning anymore.
In the query for files I can see the hex description for the @sign, and egw doesn't deliver the file.
Maybe it is a lightning bug, but I am not sure.
Doing some tries with cadaver the point seems to be if the @ is masked in the get command, I don't know what is the correct behaviour:
dav:/egroupware/groupdav.php/calendar/> get BAHN@... hhhfff.ics
Downloading `/egroupware/groupdav.php/calendar/BAHN%40Fahrplan.ics' to hhhfff.ics:
Progress: [=============================>] 100,0% of 1380 bytes succeeded.
dav:/egroupware/groupdav.php/calendar/> get BAHN%40Fahrplan.ics hhhfff.ics
Downloading `/egroupware/groupdav.php/calendar/BAHN%2540Fahrplan.ics' to hhhfff.ics: [.] failed:
404 Not Found
Comment by Ralf Becker at 2013/05/25 09:56:
EGroupware does NOT generate UIDs with an @-sign. Our UIDs use following form
But you can import ics files or CalDAV clients can add events, which contain arbitrary UIDs.
AFAIK there's no strong specifiction about format of UIDs.
Comment by Christoph Kaulich at 2013/05/14 09:30:
Just tested with a trunk from yesterday, it doesn't work here either.