Index: modules/dav/main/mod_dav.h =================================================================== --- modules/dav/main/mod_dav.h (revision 816931) +++ modules/dav/main/mod_dav.h (working copy) @@ -1935,6 +1935,9 @@ /* Get the entity tag for a resource */ const char * (*getetag)(const dav_resource *resource); + /* return request record */ + request_rec * (*get_request_rec)(const dav_resource *resource); + /* ** If a provider needs a context to associate with this hooks structure, ** then this field may be used. In most cases, it will just be NULL. Index: modules/dav/fs/repos.c =================================================================== --- modules/dav/fs/repos.c (revision 816931) +++ modules/dav/fs/repos.c (working copy) @@ -46,6 +46,7 @@ apr_pool_t *pool; /* memory storage pool associated with request */ const char *pathname; /* full pathname to resource */ apr_finfo_t finfo; /* filesystem info */ + request_rec *r; }; /* private context for doing a filesystem walk */ @@ -210,6 +211,11 @@ ** ** PRIVATE REPOSITORY FUNCTIONS */ +request_rec *dav_fs_get_request_rec(const dav_resource *resource) +{ + return resource->info->r; +} + apr_pool_t *dav_fs_pool(const dav_resource *resource) { return resource->info->pool; @@ -648,6 +654,7 @@ /* Create private resource context descriptor */ ctx = apr_pcalloc(r->pool, sizeof(*ctx)); ctx->finfo = r->finfo; + ctx->r = r; /* ### this should go away */ ctx->pool = r->pool; @@ -1816,6 +1823,8 @@ dav_fs_remove_resource, dav_fs_walk, dav_fs_getetag, + dav_fs_get_request_rec, + NULL }; static dav_prop_insert dav_fs_insert_prop(const dav_resource *resource,