[OpenAFS] HOWTO: mod_dav (apache 1.x) and afs

Adam Megacz megacz@cs.berkeley.edu
Wed, 17 Jan 2007 20:05:41 -0800


In case anybody else is trying to do this, here's what worked for me.

The patch below is essentially the same thing as this:

  http://www.lyra.org/pipermail/dav-dev/2002-June/003647.html

Except that patch doesn't seem to apply cleanly.  Usage for debianites
would go something like this (with the patch in mod-dav-afs.patch):

  apt-get source libapache-mod-dav
  cd libapache-mod-dav-1.0.3
  patch -p0 < ../mod-dav-afs.patch
  dpkg-buildpackage
  dpkg -i ../libapache-mod-dav-1.0.3*.deb

And, in httpd.conf,

  BrowserMatch "^WebDAVFS/" redirect-carefully
  BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
  BrowserMatch "Microsoft-WebDAV-MiniRedir/5.1.2600" redirect-carefully
  BrowserMatch "^WebDrive" redirect-carefully
  BrowserMatch "^WebDAVFS" redirect-carefully

  DAVLockDB /var/lock/DAV/

  LimitXMLRequestBody 0

  <Location ****>
    DAV On

Patch is below.

  - a  



--- dav_fs_repos.c      Sun Nov  4 21:20:32 2001
+++ dav_fs_repos.c      Wed Jan 17 19:53:34 2007
@@ -1362,8 +1362,8 @@
     /* open and scan the directory */
     if ((dirp = opendir(fsctx->path1.buf)) == NULL) {
        /* ### need a better error */
-       return dav_new_error(wctx->pool, HTTP_NOT_FOUND, 0, NULL);
-    }
+        /* return dav_new_error(wctx->pool, HTTP_NOT_FOUND, 0, NULL); */
+    } else {
     while ((ep = readdir(dirp)) != NULL) {
        size_t len = strlen(ep->d_name);
 
@@ -1471,6 +1471,7 @@
 
     if (err != NULL)
        return err;
+    }
 
     /* don't walk lock null resources for depth 0 */
     if (depth != 0 && wctx->walk_type & DAV_WALKTYPE_LOCKNULL) {