We talked about a •dynamic* test, so that a (laptop) connecting through different proxies could choose whether to use C-L.
On Tue, Jun 25, 2013 at 9:36 AM, <i...@apache.org> wrote: > Author: ivan > Date: Tue Jun 25 13:36:48 2013 > New Revision: 1496470 > > URL: http://svn.apache.org/r1496470 > Log: > Add new 'http-chunked-requests' configuration option to control using > of chunked transfer encoding for HTTP/1.1 servers. > > * subversion/include/svn_config.h > (SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS): New. > > * subversion/libsvn_ra_serf/ra_serf.h > (svn_ra_serf__session_t): Add USING_CHUNKED_REQUESTS flag. > > * subversion/libsvn_ra_serf/serf.c > (load_config): Parse 'http-chunked-requests' configuration option. > > * subversion/libsvn_ra_serf/util.c > (setup_serf_req): Set Content-Length if USING_CHUNKED_REQUESTS is zero. > > * subversion/libsvn_subr/config_file.c > (svn_config_ensure): Mention 'http-chunked-requests' in 'servers' file > template. > > Modified: > subversion/trunk/subversion/include/svn_config.h > subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h > subversion/trunk/subversion/libsvn_ra_serf/serf.c > subversion/trunk/subversion/libsvn_ra_serf/util.c > subversion/trunk/subversion/libsvn_subr/config_file.c > > Modified: subversion/trunk/subversion/include/svn_config.h > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_config.h?rev=1496470&r1=1496469&r2=1496470&view=diff > ============================================================================== > --- subversion/trunk/subversion/include/svn_config.h (original) > +++ subversion/trunk/subversion/include/svn_config.h Tue Jun 25 13:36:48 2013 > @@ -95,6 +95,8 @@ typedef struct svn_config_t svn_config_t > #define SVN_CONFIG_OPTION_HTTP_BULK_UPDATES "http-bulk-updates" > /** @since New in 1.8. */ > #define SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS "http-max-connections" > +/** @since New in 1.9. */ > +#define SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS "http-chunked-requests" > > #define SVN_CONFIG_CATEGORY_CONFIG "config" > #define SVN_CONFIG_SECTION_AUTH "auth" > > Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1496470&r1=1496469&r2=1496470&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original) > +++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Tue Jun 25 13:36:48 > 2013 > @@ -144,6 +144,9 @@ struct svn_ra_serf__session_t { > HTTP/1.0. Thus, we cannot send chunked requests. */ > svn_boolean_t http10; > > + /* Should we use Transfer-Encoding: chunked for HTTP/1.1 servers. */ > + svn_boolean_t using_chunked_requests; > + > /* Our Version-Controlled-Configuration; may be NULL until we know it. */ > const char *vcc_url; > > > Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1496470&r1=1496469&r2=1496470&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original) > +++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Tue Jun 25 13:36:48 2013 > @@ -225,6 +225,11 @@ load_config(svn_ra_serf__session_t *sess > SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS, > > SVN_CONFIG_DEFAULT_OPTION_HTTP_MAX_CONNECTIONS)); > > + SVN_ERR(svn_config_get_bool(config, &session->using_chunked_requests, > + SVN_CONFIG_SECTION_GLOBAL, > + SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS, > + TRUE)); > + > if (config) > server_group = svn_config_find_group(config, > session->session_url.hostname, > @@ -281,6 +286,12 @@ load_config(svn_ra_serf__session_t *sess > server_group, > SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS, > session->max_connections)); > + > + SVN_ERR(svn_config_get_bool( > + config, &session->using_chunked_requests, > + server_group, > + SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS, > + session->using_chunked_requests)); > } > > /* Don't allow the http-max-connections value to be larger than our > > Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1496470&r1=1496469&r2=1496470&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_ra_serf/util.c (original) > +++ subversion/trunk/subversion/libsvn_ra_serf/util.c Tue Jun 25 13:36:48 2013 > @@ -641,8 +641,9 @@ setup_serf_req(serf_request_t *request, > serf_bucket_alloc_t *allocator = serf_request_get_alloc(request); > > svn_spillbuf_t *buf; > + svn_boolean_t set_CL = session->http10 || !session->using_chunked_requests; > > - if (session->http10 && body_bkt != NULL) > + if (set_CL && body_bkt != NULL) > { > /* Ugh. Use HTTP/1.0 to talk to the server because we don't know if > it speaks HTTP/1.1 (and thus, chunked requests), or because the > @@ -670,7 +671,7 @@ setup_serf_req(serf_request_t *request, > > /* Set the Content-Length value. This will also trigger an HTTP/1.0 > request (rather than the default chunked request). */ > - if (session->http10) > + if (set_CL) > { > if (body_bkt == NULL) > serf_bucket_request_set_CL(*req_bkt, 0); > > Modified: subversion/trunk/subversion/libsvn_subr/config_file.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_file.c?rev=1496470&r1=1496469&r2=1496470&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_subr/config_file.c (original) > +++ subversion/trunk/subversion/libsvn_subr/config_file.c Tue Jun 25 13:36:48 > 2013 > @@ -810,6 +810,8 @@ svn_config_ensure(const char *config_dir > "### http-max-connections Maximum number of parallel server" > NL > "### connections to use for any given" > NL > "### HTTP operation." > NL > + "### http-chunked-requests Whether to use chunked transfer" > NL > + "### encoding for HTTP requests body." > NL > "### neon-debug-mask Debug mask for Neon HTTP library" > NL > "### ssl-authority-files List of files, each of a trusted > CA" > > NL > >