Closed
Bug 943340
Opened 12 years ago
Closed 12 years ago
CalDAV not working after 2.6.3 update with some CalDAV servers [Error: r.status is undefined]
Categories
(Calendar :: Provider: CalDAV, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
2.6.4
People
(Reporter: giermann, Assigned: giermann)
References
Details
Attachments
(1 file)
|
811 bytes,
patch
|
Fallen
:
review+
Fallen
:
approval-calendar-aurora+
Fallen
:
approval-calendar-beta+
Fallen
:
approval-calendar-esr+
|
Details | Diff | Splinter Review |
After update to Lightning 2.6.3 all my CalDAV calendars (hosted by Kerio Connect 8.2.1) did not show any events.
Found a message in error console complaining about "r.status is undefined".
Digging further I found the error caused by attachment #826344 [details] [diff] [review] in bug #930132.
Looking at the lines surrounding the added lines, I thought it would be best to add another " if( r.status && ... " here, as it exists in the other if-branches. Doing so immediately showed up all my events, so it seems to fix the error.
I was asked to do some logging and file another bug - so here we are. I found warnings "CalDAV: Unhandled response element, status: undefined" already in Lightning 2.6.2, which still worked. After the addtional check mentioned above, this warning remains in 2.6.3 and everything works fine to the user.
I'll attach a committable patch file later...
| Assignee | ||
Updated•12 years ago
|
Assignee: nobody → giermann
Comment 1•12 years ago
|
||
Sven, I would be interested to see what the response from the Kerio server looks like. Given r.status is undefined, it seems there is an entry in the XML they send that is missing a status element. This is what it should look like when you change exactly one event on the server and then synchronize:
<D:multistatus>
<D:sync-response>
<D:href>/path/to/changed/ics/A6F-52949E00-1-35A446C0.ics</D:href>
<D:status>HTTP/1.1 201 Created</D:status>
<D:propstat>
<D:prop>
<D:getetag>"gcs00000000"</D:getetag>
<D:getcontenttype>text/calendar</D:getcontenttype>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:sync-response>
<D:sync-token>1385471509</D:sync-token>
</D:multistatus>
Updated•12 years ago
|
Summary: CalDAV not working after 2.6.3 update with some CalDAV servers → CalDAV not working after 2.6.3 update with some CalDAV servers [Error: r.status is undefined]
| Assignee | ||
Comment 2•12 years ago
|
||
Check validity of r.status before using indexOf() on it...
Attachment #8338515 -
Flags: review?(philipp)
| Assignee | ||
Comment 3•12 years ago
|
||
Philipp, when I 'change' an event, I get the following:
<a:multistatus>
<a:response>
<a:href>/path/to/changed/GUID.ics</a:href>
<a:propstat>
<a:status>HTTP/1.1 200 OK</a:status>
<a:prop>
<a:getetag>af2...0002</a:getetag>
<c:calendar-data>
...
</c:calendar-data>
</a:prop>
</a:propstat>
</a:response>
</a:multistatus>
This looks similiar when I instead create an event (your response was "201 Created").
| Assignee | ||
Comment 4•12 years ago
|
||
But the error comes on the very first attempt to show the calendar. After applying the attached patch, it shows the following log:
CalDAV: Unhandled response element, status: undefined, href: /path/to/my/calendar/ contenttype:message/calendar
CalDAV: recv:
<a:multistatus>
<a:response>
<a:href>/path/to/my/calendar/</a:href>
<a:propstat>
<a:status>HTTP/1.1 200 OK</a:status>
<a:prop>
<a:getcontenttype>message/calendar</a:getcontenttype>
<a:getetag>af2...0003</a:getetag>
</a:prop>
</a:propstat>
</a:response>
<a:response>
<a:href>/path/to/my/calendar/GUID.ics</a:href>
<a:propstat>
<a:status>HTTP/1.1 200 OK</a:status>
<a:prop>
<a:getcontenttype>text/calendar</a:getcontenttype>
<a:getetag>af2...0004</a:getetag>
</a:prop>
</a:propstat>
</a:response>
...
So it seems, the server responses something unexpected before the actual calendar and items.
| Assignee | ||
Updated•12 years ago
|
Attachment #8338515 -
Flags: review?(philipp) → review?(matthew.mecca)
Comment 5•12 years ago
|
||
Comment on attachment 8338515 [details] [diff] [review]
calDavRequestHandlers.diff
Ok, I think this is the right way to go. It seems in some cases the response itself doesn't have a status. I haven't checked which way is per spec, but it doesn't hurt to catch it.
Attachment #8338515 -
Flags: review?(matthew.mecca)
Attachment #8338515 -
Flags: review+
Attachment #8338515 -
Flags: approval-calendar-release+
Attachment #8338515 -
Flags: approval-calendar-beta+
Attachment #8338515 -
Flags: approval-calendar-aurora+
Comment 6•12 years ago
|
||
Pushed to comm-central changeset c0db437395e8
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.0
Comment 7•12 years ago
|
||
Backported to releases/comm-esr24 changeset 9711f03accf9
Target Milestone: 3.0 → 2.6.4
Comment 8•12 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•