- From: Greg Stein <gstein@lyra.org>
- Date: Thu, 13 Apr 2000 16:17:00 -0700 (PDT)
- To: w3c-dist-auth@w3.org
- cc: dav-dev@lyra.org
Oh. I found Yet Another Bastard Solution.
S9.4.2 specifies that if no Tagged-list matches the resource [URI], then
the If: header should be ignored.
S7.6 simply states that lock tokens must be supplied in an If: header. It
says nothing about them being supplied in a *matching* Tagged-list or
No-tag-list.
Therefore, the following If: header should *always* succeed:
If: <DAV:just-ignore-this> (<A> <B>)
Good fun, huh?
Okay. So we have found a way to circumvent the *intent* of the spec, but
what is the true answer here? What *should* be the specification?
IMO, the above form is just like submitting a Lock-Token header with a
list of locktokens. We should use the Lock-Token header.
This is not required, but I highly recommend it: also throw out the If:
header. The damn thing is complicated as all hell. I've got a couple
thousand lines of code just to deal with the bugger. And it is *still* not
processing it correctly despite many revisions, refinements, and a couple
people working on it. Call us bad coders, but I like to think it is just
because the thing is too complex and possibly unclearly specified.
Cheers,
-g
On Thu, 13 Apr 2000, Greg Stein wrote:
> I believe that I have an answer to this. The trick is to realize that a
> no-tag-list can specify a set of OR'd states. So the answer is:
>
> If: (<A>) (<B>) (Not <A>) (Not <B>)
>
> Ugly, but it basically means that every resource will match something, and
> that the lock token is provided to navigate through the lock.
>
> Eek.
>
> -g
>
>
> On Thu, 13 Apr 2000, Greg Stein wrote:
> > Consider the following directory structure:
> >
> > Collection [locked with token A, depth=0]
> > \
> > SubCollection [locked with token B, depth=infinity]
> > \
> > File1
> > File2 [these inherit token B]
> > ...
> > FileN
> >
> >
> > Now, how do you delete SubCollection?
> >
> > Note that you must provide token A to remove SubCollection from
> > Collection. Also, you must provide token B for SubCollection *and*
> > File1..N.
> >
> > What's the IF: header look like?
> >
> > (presume that you cannot delineate all the (recursive) members of
> > SubCollection and insert them *all* into the IF: header)
> >
> > I can't see a way to do it. Normally, no-tag-lists are used for specifying
> > locks for a hierarchy. But you must use a tagged-list to specify token A.
> >
> > Ideas?
> >
> > Cheers,
> > -g
> >
> > --
> > Greg Stein, http://www.lyra.org/
> >
> >
> >
>
> --
> Greg Stein, http://www.lyra.org/
>
--
Greg Stein, http://www.lyra.org/
Received on Thursday, 13 April 2000 19:10:57 UTC