Re: If: header and "parent" resource checking

Greg,
I believe DAV4J behaves as you describe below.



I'm going through mod_dav right now and refining/verifying what resources
it checks during If: header processing. I'm taking a particular approach
that I want to bounce off the group to see if this makes sense and is
"proper".

Specifically, it revolves around whether we need to check the "parent"
resource to see if it is locked and the If: header contains those locks.
Say you're doing a MKCOL. The spec states that you must satisfy the locks
held on the parent resource. The following cases are a bit less obvious:

*) when using LOCK to create a locknull resource, this effectively creates
  a new resource in the parent collection.
  ==> parent resource should be checked

*) when using UNLOCK on a locknull, this effectively deletes a resource
  from the parent collection
  ==> parent resource should be checked

*) using MOVE on a resource: this removes the resource from the parent
  ==> parent resource should be checked

*) MOVE and COPY create resources at the Destination
  ==> parent resource of the Destination should be checked

*) MKCOL on a null resource
  ==> parent resource should be checked

*) MKCOL on a locknull resource does not add any resources to the parent
  collection
  ==> parent resource SHOULD NOT be checked
  (the [locknull] resource itself will be checked, however)

*) PUT operates similar to MKCOL w.r.t. locknull resources


Note that this can be an interoperability item. If one server enforces
that conditions be met for the parent, but another doesn't, then a client
(that doesn't provide parent conditions) could fail.

Cheers,
-g

--
Greg Stein, http://www.lyra.org/

Received on Monday, 29 May 2000 09:11:38 UTC