aboutsummaryrefslogtreecommitdiff
path: root/subversion/svnserve/serve.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/svnserve/serve.c')
-rw-r--r--subversion/svnserve/serve.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/subversion/svnserve/serve.c b/subversion/svnserve/serve.c
index 6b66b199f266..a3fd938b1c30 100644
--- a/subversion/svnserve/serve.c
+++ b/subversion/svnserve/serve.c
@@ -1526,6 +1526,9 @@ static svn_error_t *get_file(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
&want_props, &want_contents,
&wants_inherited_props));
+ if (wants_inherited_props == SVN_RA_SVN_UNSPECIFIED_NUMBER)
+ wants_inherited_props = FALSE;
+
full_path = svn_fspath__join(b->fs_path->data,
svn_relpath_canonicalize(path, pool), pool);
@@ -1545,8 +1548,14 @@ static svn_error_t *get_file(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
SVN_CMD_ERR(svn_fs_file_checksum(&checksum, svn_checksum_md5, root,
full_path, TRUE, pool));
hex_digest = svn_checksum_to_cstring_display(checksum, pool);
+
+ /* Fetch the file's explicit and/or inherited properties if
+ requested. Although the wants-iprops boolean was added to the
+ protocol in 1.8 a standard 1.8 client never requests iprops. */
if (want_props || wants_inherited_props)
- SVN_CMD_ERR(get_props(&props, &inherited_props, &ab, root, full_path,
+ SVN_CMD_ERR(get_props(want_props ? &props : NULL,
+ wants_inherited_props ? &inherited_props : NULL,
+ &ab, root, full_path,
pool));
if (want_contents)
SVN_CMD_ERR(svn_fs_file_contents(&contents, root, full_path, pool));
@@ -1640,6 +1649,9 @@ static svn_error_t *get_dir(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
&dirent_fields_list,
&wants_inherited_props));
+ if (wants_inherited_props == SVN_RA_SVN_UNSPECIFIED_NUMBER)
+ wants_inherited_props = FALSE;
+
if (! dirent_fields_list)
{
dirent_fields = SVN_DIRENT_ALL;
@@ -1689,10 +1701,13 @@ static svn_error_t *get_dir(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
/* Fetch the root of the appropriate revision. */
SVN_CMD_ERR(svn_fs_revision_root(&root, b->fs, rev, pool));
- /* Fetch the directory's explicit and/or inherited properties
- if requested. */
+ /* Fetch the directory's explicit and/or inherited properties if
+ requested. Although the wants-iprops boolean was added to the
+ protocol in 1.8 a standard 1.8 client never requests iprops. */
if (want_props || wants_inherited_props)
- SVN_CMD_ERR(get_props(&props, &inherited_props, &ab, root, full_path,
+ SVN_CMD_ERR(get_props(want_props ? &props : NULL,
+ wants_inherited_props ? &inherited_props : NULL,
+ &ab, root, full_path,
pool));
/* Begin response ... */