Subject: mod_dav and the If-Header

From: Hartmut Warncke <[email-masked]>
Date: Mon, 07 Feb 2000 19:19:13 +0100

I have three problems with mod_dav 0.9.14 and hope that someone can help
me:

It is assumed that /c is a collection which is locked with depth 0
(Locktoken L).

1.)
I want to delete /c/f. My interpretation of RFC 2518 is that I have to
send Locktoken L
within the If-Header of the DELETE command but mod_dav deletes /c/f no
matter
if I send the Locktoken L or not.

2.)
mod_dav does not allow to create a new collection /c/c1 no matter if
I send the Locktoken L within the If-Header of the MKCOL command or not.

Server response is: "423 Locked".

3.)
mod_dav does not allow to copy a collection into /c no matter if I send
the Locktoken L within the If-Header of the COPY command or not.
Server response is "423 Locked".

Hartmut

---

From: Greg Stein <[email-masked]>
Date: Mon, 7 Feb 2000 17:40:41 -0800 (PST)

Hi Hartmut,

I'm also copying the [email-masked] mailing list with this. That mailing
list is specifically for mod_dav users/developers.

> if I send the Locktoken L or not.

This is a bug in mod_dav. It doesn't check the parent resource for locks
before processing the delete.

> Server response is: "423 Locked".

You need to use a Tagged-list production to say that L applies to /c. If
you simply use a No-tag-list, then you are asserting the lock applies to
/c/c1 (and /c when the parent is checked).

I just tried your scenario (successfully) with the following If: header:

If: <http://host/c/>(<opaquelocktoken:0f2b6c12-1dd2-11b2-8f00-de8a8992ccf3>)

> Server response is "423 Locked".

You are probably seeing the same problem as in (2) (not using a tagged
list).

Cheers,
-g

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