Subject: Class 1 server and lock requests

From: Matt Gushee <[email-masked]>
Date: Mon, 23 Dec 2002 21:09:37 -0700

Hello--

I am trying to mount a DAVfs2 file system (davfs2-0.2.1) served by
Christian Scholz's python davserver (0.5.2), and have encountered a
problem with lock requests. Both client and server are running on 
Debian GNU/Linux 3.0.

First of all, the server package is mostly Class 1-compliant, according
to the Litmus tests; it definitely does not support locking. I am able
to mount the DAVfs file system, get directory listings, read files, and
create new files. But when I attempt to overwrite an existing file, the
following happens:

  1. DAVfs attempts to acquire an exclusive write lock on the resource.
  2. The server returns a 501 error.
  3. The client fails to overwrite the resource (I have tried to edit 
     and save the file directly with Vim, and to save the file locally 
     and 'cp' it to the DAVfs directory; same result either way).
     
I can see a couple of possible server-side issues that may be preventing
the resource from being overwritten: one is that the body of the 501
error message appears to be sent before the headers; the other is that
the file permissions may not allow overwriting. But I would like to know
what the server and client should be doing in this situation. I don't
see any relevant language in RFC2518, and both client and server
software are minimally documented. Are there references I should be
looking at, or is there an informal consensus as to what should happen
here?

Thanks in advance for any information, and happy holidays (assuming it
is a holiday in your part of the world)!

-- 
Matt Gushee                 When a nation follows the Way,
Englewood, Colorado, USA    Horses bear manure through
[email-masked]           its fields;
http://www.havenrock.com/   When a nation ignores the Way,
                            Horses bear soldiers through
                                its streets.
                                
                            --Lao Tzu (Peter Merel, trans.)