[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

mod_dav question: how to obtain additional client-provided information in db_remove()?

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 30 Jul 2010 20:21:48 +0300

So, I'm looking at teaching ra_dav how to transfer the "expected current
value of a revprop" when editing it.

I started implementing this by extending the PROPPATCH request
(specifically, adding a child to the <D:propertyupdate><D:set><D:prop>
or <D:propertyupdate><D:remove><D:prop> element).

For setting and editing revprops, this seems to be okay: in
mod_dav_svn/deadprops.c:db_store() I get the apr_xml_elem *ELEM
corresponding to D:prop and can use it to access the child I'm adding.
However, for removing revprops, db_remove() (also in deadprops.c) gets only
a dav_db and a const char *propname as arguments.

I've dug in the dav_db structure, and reached as far as
db->resource->info->r (which is a request_rec living under the
dav_resource_private sturct), but I can't find anywhere a way to get a
handle on the XML request body.

And the question:

* How can I teach 'propdel --revprop' to pass an expected (pre-deletion) value
  of the revprop?

Thanks,

Daniel
(yeah, I could just make the client code always go via <D:set> and never via
<D:remove>, but that's ugly isn't it?)
Received on 2010-07-30 19:23:42 CEST

This is an archived mail posted to the Subversion Dev mailing list.