IIRC, there was a long discussion on IRC or some list about the best
way to do things during subscribe (*). It would be possible (and
probably not too difficult) to do OPTIONS first. In the past,
Chandler has occasionally had to work around issues with half-baked
in-development CalDAV servers that were a little more focused on the
"Cal" than the "DAV", if you know what I mean.
--Grant
(*) I can't find that any more; proof that Search Is Not The Answer :)
On 16 May, 2007, at 14:23, Jared Rhine wrote:
What follows is an inquiry about the advisability and effort of
using HTTP "OPTIONS" instead of "PROPFIND" for Chandler to
determine if a given URL is a DAV URL. The inquiry is primarily
directed to Morgen.
I've spent a couple days looking at the server-side of a real-world
Morse Code driven service looks like. The standard pattern for a
synchronization is a 4-transaction HTTP set:
71.202.115.113 - - [16/May/2007:13:45:17 -0700] "PROPFIND /pim/
collection/723886a6-705d-11db-8ee8-99b22f7fce88?ticket=1zaf4xxac0
HTTP/1.1" 501 1238 "-" "Chandler/0.7.dev-r14332 (Linux; U; i386;
en_US)"
71.202.115.113 - - [16/May/2007:13:45:17 -0700] "HEAD /pim/
collection/723886a6-705d-11db-8ee8-99b22f7fce88?ticket=1zaf4xxac0
HTTP/1.1" 200 - "-" "Chandler/0.7.dev-r14332 (Linux; U; i386; en_US)"
71.202.115.113 - - [16/May/2007:13:45:17 -0700] "GET /pim/
collection/723886a6-705d-11db-8ee8-99b22f7fce88?ticket=1zaf4xxac0
HTTP/1.1" 200 5533 "-" "Chandler/0.7.dev-r14332 (Linux; U; i386;
en_US)"
71.202.115.113 - - [16/May/2007:13:45:17 -0700] "GET /mc/collection/
723886a6-705d-11db-8ee8-99b22f7fce88 HTTP/1.1" 200 1243606 "-"
"Chandler/0.7.dev-r14332 (Linux; U; i386; en_US)"
So, it's a PROPFIND + HEAD + GET /pim + GET /mc.
The initial PROPFIND operation helps Chandler determine if it's
working with a DAV-based URL.
Essentially every Chandler-driven PROPFIND against the server will
fail. This is per the design.
However, it tweaks a little muscle in my sysadmin head: looking for
5xx errors in an access log is one of the primary ways to tell if
something is breaking on the server. You better pay attention if
that metric suddenly spikes.
So I've a mild aversion to a regular, everyday operation generating
what looks like an exception condition.
All Chandler is trying to do is figure out if the URL is a DAV URL.
There's already a standard WebDAV mechanism to determine this; it's
the HTTP OPTIONS method.
I hesitate to even ask the question as what we have now works, and
it'd be a Morgen task, and Morgen is quite the busy camper these
days. But the question is out there now, and I'm guessing I'll get
a pretty reasonable answer that a good balance of these concerns.
Thoughts?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev