Author: ehu Date: Mon Jun 6 21:27:21 2011 New Revision: 1132782 URL: http://svn.apache.org/viewvc?rev=1132782&view=rev Log: Check node kind of resolved special nodes to be a directory, in order to include symlinks pointing to directories.
* subversion/mod_dav_svn/repos.c (deliver): Extend 'is directory' check for inclusion in parent path listing to include symlinks-to-directory. Modified: subversion/trunk/subversion/mod_dav_svn/repos.c Modified: subversion/trunk/subversion/mod_dav_svn/repos.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/repos.c?rev=1132782&r1=1132781&r2=1132782&view=diff ============================================================================== --- subversion/trunk/subversion/mod_dav_svn/repos.c (original) +++ subversion/trunk/subversion/mod_dav_svn/repos.c Mon Jun 6 21:27:21 2011 @@ -3247,7 +3247,23 @@ deliver(const dav_resource *resource, ap apr_hash_this(hi, &key, NULL, &val); dirent = val; - if (dirent->kind != svn_node_dir) + if (dirent->kind == svn_node_file && dirent->special) + { + svn_node_kind_t resolved_kind; + const char *name = key; + + serr = svn_io_check_resolved_path(name, &resolved_kind, + resource->pool); + if (serr != NULL) + return dav_svn__convert_err(serr, + HTTP_INTERNAL_SERVER_ERROR, + "couldn't fetch dirents " + "of SVNParentPath", + resource->pool); + if (resolved_kind != svn_node_dir) + continue; + } + else if (dirent->kind != svn_node_dir) continue; ent->name = key;