mod_dav_fs properties using Extended Attributes
Removes the requirement for .DAV metadata directories and a dbm database per file with properties.
- Patch for httpd2.3.0-dev:
Requires AprExtendedAttributes patch (implemented for and tested on Mac OS X, Linux, FreeBSD and Solaris)
- Adds new global resource conf directive: DAVPropDBType. Allowed values are "sdbm" (default) or "xattr"
# Enabled mod_dav_fs extended attributes DAVPropDBType "xattr"
- Does not change default behaviour of mod_dav_fs (sdbm is enabled by default and extended attribute support must be explicitly enabled).
dbm.c is split into 2 files by the patch:
props.c - props provider and namespace handling
dbm.c - db specific functions
- No changes are made to dbm functions other than adding a function dispatch structure to call the existing dbm wrapper routines.
xattr.c implements the dispatch routines and instead stores as extended attributes. The dispatch is switched globally by the config directive.
- Creates attributes with exactly the same namespace storage mapping and metadata as the existing SDBM properties.
Extended attribute property keys are prefixed with apache.org:mod_dav_fs: when stored as extended attributes
- This is so we do not clash with existing extended attributes.
- It may be desirabe later to add directives to map certain namespaces+key combinations to non-prefixed extended attributes to allow outside applications easier access to Extended Attributes set by mod_dav_fs.
- Passes all litmus properties tests (more testing required).
- Example Extended Attributes set during a litmus run (using apxattr sample utility attached to the APR issue link above):
# apxattr -l /opt/apache2.3-davxattrs/uploads/litmus/prop2 apache.org:mod_dav_fs:1:prop5 apache.org:mod_dav_fs:1:prop6 apache.org:mod_dav_fs:1:prop7 apache.org:mod_dav_fs:1:prop8 apache.org:mod_dav_fs:1:prop9 apache.org:mod_dav_fs:METADATA apache.org:mod_dav_fs:1:valnspace apache.org:mod_dav_fs::nonamespace apache.org:mod_dav_fs:1:high-unicode
- To Do
- Documentation changes
- Review
- More testing
- ...