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$