Skip to content

Latest commit

 

History

History
39 lines (31 loc) · 1.39 KB

File metadata and controls

39 lines (31 loc) · 1.39 KB

Functionality to be implemented by Net::DAV::Server

RFC 4918 Class 2 locking compliance

  • Enforce locking at the userland level, independent of any expensive, operating system-specific mechanisms like flock()
    • When evaluating an operation on a resource, determine the lock status based on absolute resource location and type
  • Identify a suitable, compact database storage mechanism to store the following information on any given lock:
    • Opaque lock token/UUID
    • Resolved local filesystem path (preferably as provided by realpath())
    • Requestor (author)
    • Lock depth for collections (n, infinite)
    • Lock expiration

The If: header

  • Ensure any locking-related operations are conditionally acted upon as long as the If: header lists the opaque lock token for a given resource, as well as the root of any given inifinitely-locked directory, where applicable.

Supported clients

  1. libneon
    • cadaver
    • gnome-vfs
    • KDE WebDAV kioslave
  2. Microsoft Web Folders
    • Microsoft Office
    • Microsoft Front Page
  3. Adobe Dreamweaver
  4. Bit Kinex

Other goals

  • Apache mod_perl integration
  • Attribute storage support (plugin)
  • Lock support (plugin)
  • Authentication support (plugin)
  • Avoid buffering entire files in memory
  • Full litmus test complience
  • Quota/“disk free” support (both Mac 512byte and standards-compliant)
  • Revisit owner/creater validation, this had to be opened up for cpdavd.