diff options
Diffstat (limited to 'subversion/svnserve/serve.c')
| -rw-r--r-- | subversion/svnserve/serve.c | 23 |
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 ... */ |
