You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/10/11 18:37:56 UTC

svn commit: r1397152 - in /subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf: commit.c options.c ra_serf.h

Author: cmpilato
Date: Thu Oct 11 16:37:55 2012
New Revision: 1397152

URL: http://svn.apache.org/viewvc?rev=1397152&view=rev
Log:
On the 'http-dynamic-prop-namespaces' branch: teach the client how to
notice if/that the server understands the custom namespaces whose URIs
are children of the extensible property XML namespace URI.

* subversion/libsvn_ra_serf/ra_serf.h
  (struct svn_ra_serf__session_t): Add 'use_ext_prop_ns' flag.

* subversion/libsvn_ra_serf/options.c
  (capabilities_headers_iterator_callback): Store the server's ability
    to handle the extensible property XML namespace.

* subversion/libsvn_ra_serf/commit.c
  (svn_ra_serf__get_commit_editor): Initialize the commit context
    baton's 'use_ext_prop_ns' flag from the same flag on the session.

Modified:
    subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/commit.c
    subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/options.c
    subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/ra_serf.h

Modified: subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/commit.c?rev=1397152&r1=1397151&r2=1397152&view=diff
==============================================================================
--- subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/commit.c Thu Oct 11 16:37:55 2012
@@ -2384,7 +2384,7 @@ svn_ra_serf__get_commit_editor(svn_ra_se
 
   ctx->deleted_entries = apr_hash_make(ctx->pool);
 
-  ctx->use_ext_prop_ns = FALSE; /* temporary */
+  ctx->use_ext_prop_ns = session->use_ext_prop_ns;
   ctx->propname_to_xmlname = apr_hash_make(ctx->pool);
   ctx->xmlprefix_to_xmlns = apr_hash_make(ctx->pool);
 

Modified: subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/options.c?rev=1397152&r1=1397151&r2=1397152&view=diff
==============================================================================
--- subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/options.c (original)
+++ subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/options.c Thu Oct 11 16:37:55 2012
@@ -211,6 +211,13 @@ capabilities_headers_iterator_callback(v
                        SVN_RA_CAPABILITY_EPHEMERAL_TXNPROPS, APR_HASH_KEY_STRING,
                        capability_yes);
         }
+
+      /* The "extensible property namespace" feature is an artefact of
+         our WebDAV protocol only.  We handle it specially. */
+      if (svn_cstring_match_list(SVN_DAV_NS_DAV_SVN_PROP_EXT_NS, vals))
+        {
+          session->use_ext_prop_ns = TRUE;
+        }
     }
 
   /* SVN-specific headers -- if present, server supports HTTP protocol v2 */

Modified: subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/ra_serf.h?rev=1397152&r1=1397151&r2=1397152&view=diff
==============================================================================
--- subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/ra_serf.h Thu Oct 11 16:37:55 2012
@@ -173,6 +173,9 @@ struct svn_ra_serf__session_t {
      constants' addresses, therefore). */
   apr_hash_t *capabilities;
 
+  /* Does the server understand the extensible property XML namespace? */
+  svn_boolean_t use_ext_prop_ns;
+
   /* Are we using a proxy? */
   int using_proxy;