| This is a rough manual trace of what occurs on a PROPFIND request. |
| |
| Location of file: M == mod_dav, S == mod_dav_svn |
| |
| dav_method_propfind [ M:mod_dav.c ] |
| dav_svn_walk [ S:repos.c ] |
| dav_svn_do_walk [ S:repos.c ] |
| ** may recursively call dav_svn_do_walk for children as depth dictates |
| - dav_propfind_walker [ M:mod_dav.c ] |
| - dav_open_propdb [ M:props.c ] |
| ** sets propdb->p to r->pool |
| - dav_svn_db_open [ S:deadprops.c ] |
| ** creates db->p |
| - dav_get_props [ M:props.c ] |
| ** Uses propdb->p. |
| ** Appends response to propdb->p |
| - may call dav_find_liveprop [ M:props.c ] |
| - dav_svn_find_liveprop [ S:liveprops.c ] |
| - dav_do_find_liveprop [ M:liveprop.c ] |
| ** static storage |
| - dav_insert_liveprop [ M:props.c ] |
| - dav_svn_insert_prop [ S:liveprops.c ] |
| ** uses resource->info->pool to svn_fs_* |
| ** places result in resource->pool |
| - dav_svn_db_output_value [ S:deadprops.c ] |
| ** uses db->resource->pool |
| - get_value [ S:deadprops.c ] |
| ** Uses db->p |
| - dav_svn_db_define_namespaces [ S:deadprops.c ] |
| - calls dav_xmlsns_add with constant storage space. |
| - Must live as long as xi->prefix_uri/xi->uri_prefix |
| ** Uses propdb->p |
| - dav_get_allprops [ M:props.c ] |
| ** Uses propdb->p |
| - dav_run_insert_all_liveprops [ M:hook ] |
| - dav_svn_insert_all_liveprops [ S:liveprops.c ] |
| ** Uses resource->info->pool |
| - dav_svn_insert_prop [ see above ] |
| ** resource->info->pool tweaked to be a temp subpool |
| - dav_close_propdb [ M:props.c ] |
| - dav_svn_db_close [ S:deadprops.c ] |
| ** destroys db->p |
| - dav_add_response [ M:mod_dav.c ] |
| ** uses wres->pool to store response |