[#6445] Accept icalendar data sended as application/octect-stream
Summary Accept icalendar data sended as application/octect-stream
Queue Kronolith
Queue Version HEAD
Type Enhancement
State Rejected
Priority 2. Medium
Owners Jan Schneider <jan (at) horde (dot) org>
Requester almarin (at) um (dot) es
Created 03/13/2008 (59 days ago)
Due
Updated 04/04/2008 (37 days ago)
Assigned 03/13/2008 (59 days ago)
Resolved 04/04/2008 (37 days ago)
Attachments api_webdav_patches.zip Download
Milestone 2.2
Patch

History
04/04/2008 Jan Schneider Comment #7
State ⇒ Rejected
Reply to this comment
Well, to me this sounds like Evolution's behavior is buggy at best, but rather very broken. I don't think it makes sense to workaround its behavior until it has at least official support for WebDAV.
04/04/2008 almarin (at) um (dot) es Comment #6 Reply to this comment
Yes, I know that it is a bit tricky.
Did you examine the content sended to Kronolith?

I forgot comment you something. At this point, we experienced a weird behaviour from Evolution: try to select Free/Busy on Publish as:. Yes, i know, it sould be iCal, but try it.

Sniffing traffic, I realised that, at first place, Evolution tries to publish calendar as Free/Busy format, even if you select iCal format. But then i selected Free/Busy format, and i could get the iCal format!.

Weird, and I think it is a bug from Evolution.
04/04/2008 Jan Schneider Comment #5 Reply to this comment
And I still can't get it working this way, nothing happens when I click on Publish.
04/04/2008 Jan Schneider Comment #4 Reply to this comment
Wow, that's complicated. I wonder why it doesn't offer a way to subscribe to WebDAV calendars in the first place.
04/04/2008 almarin (at) um (dot) es Comment #3 Reply to this comment
Well, I can tell you my work around.

In Evolution, you can get webcal calendars (works fine with HTTP authentication, but read-only), and CalDAV calendars (will be the best option soon in Kronolith ;-)

Our goal was to do a publication with Evolution using WebDAV, similary like Ligthning/Sunbird does.
To do it, Evolution (version 2.12.1 on Ubuntu) offers the next way:

1 - Edit -> Properties -> Calendar and Tasks -> Calendar Publishing -> Add
2 - You select all calendars that you want to publish (it doesn't mind if are local or webcals)
3 - Publish location with:
    - Service Type: WebDAV(HTTP)
    - Server: your horde server
    - File: /rpc.php/kronolith/[user].ics
    - Username and password for the HTTP authentication

An then, when you select Action -> Publish Calendar Information, occurs the steps of Comment #1.

With the patch attached, it works for me.
04/04/2008 Jan Schneider Comment #2
State ⇒ Feedback
Reply to this comment
As far as I can see, Evolution only supports CalDAV calendars, which is not fully implemented in Kronolith yet. When I tried to add Kronolith calendars to Evolution, the HTTP authentication worked perfectly, but Evolution didn't continue to send requests after the initial OPTIONS request. Did you see anything else?
04/04/2008 Jan Schneider Milestone ⇒ 2.2
Priority ⇒ 2. Medium
 
03/13/2008 Chuck Hagenbuch State ⇒ Assigned
Assigned to Jan Schneider
 
03/13/2008 almarin (at) um (dot) es Comment #1
New Attachment: api_webdav_patches.zip Download
Patch ⇒
Milestone ⇒
Queue ⇒ Kronolith
Summary ⇒ Accept icalendar data sended as application/octect-stream
Type ⇒ Enhancement
Priority ⇒ 1. Low
State ⇒ New
Reply to this comment
Whe Evolution mail client tries to do a webdav publication, apart from send data as application/octect-steam, it follows the next steps:

1 - It tries to publish without authentication data and without any calendar data. If 401 Unauthorized returned by the server, evolution tries to do a authentication BUT no calendar data is sent.
2 - If afther that athentication steps evolution get a HTTP 200 OK response, it sends the vcalendar data.

To handle that situation, kronolith sould be able to accept that content type and handle empty requests.

I suggest a way to do it, checking data size in webdav.php and adding content-type in api.php. Even the data size check could be done inside _kronolith_put, in api.php.