# TODO

## dave

    - globs on lock(),unlock(),steal(),options()?,move(),copy(),propfind(),proppatch() (and set/unset).
    - rework ls to use globs.
    - multistatus responses don't come through nicely.

## HTTP::DAV

    - Rework the file transfer code to avoid slurping complete files in memory
      and read through a fixed size buffer, to avoid memory hogs or crashes
      when transferring huge files.
    - LWP doesn't allow callback on upload, only download. This means
      we can't do progress indicators on "PUT". How to do it? Could patch
      LWP? Specialise LWP::UserAgent? Ugh.
    - doco globs in DAV.pm
    - fix get references
    - _put calls propfind on every call throughout a recursive _put().
      need to adjust this so that it does it only once, in put(). After
      the first time, we should be able to KNOW whether it is a collection
      or not instead of having to propfind to find out becasue in theory
      WE were the ones who put the file there.

    - finish "source" property in DAV::Resource.pm
    - redo POD Resource.pm

    - setup_if_headers need to get just Rsource's locks not all RL's locks.
    - discovery still isn't resetting locks properly ????
    - DAV.pm as_string needs working resource
    - finish lock (bug against mod_dav somewhere)

    - mod t/* for IIS 5 lock and proppatch deficiencies.
    - how to we handle degradation for incomplete servers in test suite (IIS)?
    - mod_dav has a very strange bug with lock-null resources.
      The following combination of commands makes it weird out:
         $ mkdir dir1
         $ lock dir1
         $ lock dir2 (this is a lock null)
         $ move dir1 dir2
         Now, the spec says that dir2 should now be the copy of dir1 and it should be locked.
         However, mod_dav has an unlocked dir2. Even worse, if you delete dir2, there is
         a shadowed lock-null resource called dir2 sitting behind the scenes. Bad.

## Wishlist functions

    - testing against Zope
    - dave:implement netrc?
    - dave:tab completion? history?
    - dave:implement more advanced command-line interaction
    - dave:copy/move should allow the user to set 'depth' and 'overwrite'
    - redo auth as a callback? If so, needs 2 functions, get and success.

## Wishlist projects

    - Namespaces are not currently supported. I munge around them since
      they are not supported in DOM1 which is what XML::DOM uses.
    - Rework Response.pm now that LWP::Status supports the status codes.

    - support for LWPng which is fully HTTP/1.1 compliant.
    - DAV Bindings
    - DAV Redirects Reference
    - DAV Ordered collections
    - DAV DASL support
    - DAV Delta-V
    - DAV ACL's

$Id$