You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/07/12 08:53:40 UTC
svn commit: r1502440 - in
/subversion/branches/1.8.x-tristate-chunked-request: ./
subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c
subversion/libsvn_subr/config_file.c
Author: breser
Date: Fri Jul 12 06:53:40 2013
New Revision: 1502440
URL: http://svn.apache.org/r1502440
Log:
On the 1.8.x-tristate-chunked-request branch: Merge r1502401 from the tristate-chunked-re
Conflicts and other changes necessary to make it viable for 1.8.x described below.
* subversion/include/svn_config.h:
(SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS): Removed (can't add to public API in patch re
* subversion/libsvn_ra_serf/serf.c
(OPTION_HTTP_CHUNKED_REQUESTS): Add
(load_config): Lines for reading config option conflicted, chose r1502401 changes.
Use OPTION_HTTP_CHUNKED_REQUESTS instead of SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS.
* subversion/libsvn_ra_serf/util.c
(svn_ra_serf__error_on_status): Error test for 411 conflicted, chose r1502401 changes.
Modified:
subversion/branches/1.8.x-tristate-chunked-request/ (props changed)
subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c
subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/util.c
subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_subr/config_file.c
Propchange: subversion/branches/1.8.x-tristate-chunked-request/
------------------------------------------------------------------------------
Merged /subversion/branches/tristate-chunked-request:r1502401
Modified: subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c?rev=1502440&r1=1502439&r2=1502440&view=diff
==============================================================================
--- subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
@@ -137,8 +137,8 @@ load_http_auth_types(apr_pool_t *pool, s
runtime configuration variable. */
#define DEFAULT_HTTP_TIMEOUT 600
-/* Private symbol for the 1.9-public SVN_CONFIG_OPTION_HTTP_DETECT_CHUNKING */
-#define OPTION_HTTP_DETECT_CHUNKING "http-detect-chunking"
+/* Private symbol for the 1.9-public SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS */
+#define OPTION_HTTP_CHUNKED_REQUESTS "http-chunked-requests"
static svn_error_t *
@@ -153,6 +153,7 @@ load_config(svn_ra_serf__session_t *sess
const char *timeout_str = NULL;
const char *exceptions;
apr_port_t proxy_port;
+ svn_tristate_t chunked_requests;
if (config_hash)
{
@@ -229,12 +230,11 @@ load_config(svn_ra_serf__session_t *sess
SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
SVN_CONFIG_DEFAULT_OPTION_HTTP_MAX_CONNECTIONS));
- /* Do we need to detect whether an intervening proxy does not support
- chunked requests? */
- SVN_ERR(svn_config_get_bool(config, &session->detect_chunking,
- SVN_CONFIG_SECTION_GLOBAL,
- OPTION_HTTP_DETECT_CHUNKING,
- FALSE));
+ /* Should we use chunked transfer encoding. */
+ SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
+ SVN_CONFIG_SECTION_GLOBAL,
+ OPTION_HTTP_CHUNKED_REQUESTS,
+ "auto", svn_tristate_unknown));
if (config)
server_group = svn_config_find_group(config,
@@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
session->max_connections));
- /* Do we need to take care with this proxy? */
- SVN_ERR(svn_config_get_bool(
- config, &session->detect_chunking,
- server_group,
- OPTION_HTTP_DETECT_CHUNKING,
- session->detect_chunking));
+ /* Should we use chunked transfer encoding. */
+ SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
+ server_group,
+ OPTION_HTTP_CHUNKED_REQUESTS,
+ "auto", svn_tristate_unknown));
}
/* Don't allow the http-max-connections value to be larger than our
@@ -373,6 +372,24 @@ load_config(svn_ra_serf__session_t *sess
session->using_proxy = FALSE;
}
+ /* Setup detect_chunking and using_chunked_requests based on
+ * the chunked_requests tristate */
+ if (chunked_requests == svn_tristate_unknown)
+ {
+ session->detect_chunking = TRUE;
+ session->using_chunked_requests = TRUE;
+ }
+ else if (chunked_requests == svn_tristate_true)
+ {
+ session->detect_chunking = FALSE;
+ session->using_chunked_requests = TRUE;
+ }
+ else /* chunked_requests == svn_tristate_false */
+ {
+ session->detect_chunking = FALSE;
+ session->using_chunked_requests = FALSE;
+ }
+
/* Setup authentication. */
SVN_ERR(load_http_auth_types(pool, config, server_group,
&session->authn_types));
Modified: subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/util.c?rev=1502440&r1=1502439&r2=1502440&view=diff
==============================================================================
--- subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/util.c Fri Jul 12 06:53:40 2013
@@ -2413,8 +2413,10 @@ svn_ra_serf__error_on_status(serf_status
case 411:
return svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
- _("DAV request failed: "
- "Content length required"));
+ _("DAV request failed: 411 Content length required. The "
+ "server or an intermediate proxy does not accept "
+ "chunked encoding. Try setting 'http-chunked-requests' "
+ "to 'auto' or 'no' in your client configuration."));
}
if (sline.code >= 300)
Modified: subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_subr/config_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_subr/config_file.c?rev=1502440&r1=1502439&r2=1502440&view=diff
==============================================================================
--- subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_subr/config_file.c (original)
+++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_subr/config_file.c Fri Jul 12 06:53:40 2013
@@ -834,14 +834,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-detect-chunking Detect if the connection supports" NL
- "### chunked requests (which some proxies"
- NL
- "### do not support). This defaults to" NL
- "### off since mod_dav_svn supports " NL
- "### chunked requests and the detection"
- NL
- "### may hurt performance." 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
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Ben Reser <be...@reser.org>.
On Fri, Jul 12, 2013 at 12:59 PM, Greg Stein <gs...@gmail.com> wrote:
> On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>>...
>> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>>...
>> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
>> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
>> session->max_connections));
>>
>> - /* Do we need to take care with this proxy? */
>> - SVN_ERR(svn_config_get_bool(
>> - config, &session->detect_chunking,
>> - server_group,
>> - OPTION_HTTP_DETECT_CHUNKING,
>> - session->detect_chunking));
>> + /* Should we use chunked transfer encoding. */
>> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
>> + server_group,
>> + OPTION_HTTP_CHUNKED_REQUESTS,
>> + "auto", svn_tristate_unknown));
>
> The last parameter should be chunked_requests (ie. use the value from
> the global options).
Fixed in r1502673.
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Ben Reser <be...@reser.org>.
On Fri, Jul 12, 2013 at 12:59 PM, Greg Stein <gs...@gmail.com> wrote:
> On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>>...
>> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>>...
>> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
>> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
>> session->max_connections));
>>
>> - /* Do we need to take care with this proxy? */
>> - SVN_ERR(svn_config_get_bool(
>> - config, &session->detect_chunking,
>> - server_group,
>> - OPTION_HTTP_DETECT_CHUNKING,
>> - session->detect_chunking));
>> + /* Should we use chunked transfer encoding. */
>> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
>> + server_group,
>> + OPTION_HTTP_CHUNKED_REQUESTS,
>> + "auto", svn_tristate_unknown));
>
> The last parameter should be chunked_requests (ie. use the value from
> the global options).
Fixed in r1502673.
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Ben Reser <be...@reser.org>.
On Fri, Jul 12, 2013 at 12:59 PM, Greg Stein <gs...@gmail.com> wrote:
> On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>>...
>> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>>...
>> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
>> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
>> session->max_connections));
>>
>> - /* Do we need to take care with this proxy? */
>> - SVN_ERR(svn_config_get_bool(
>> - config, &session->detect_chunking,
>> - server_group,
>> - OPTION_HTTP_DETECT_CHUNKING,
>> - session->detect_chunking));
>> + /* Should we use chunked transfer encoding. */
>> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
>> + server_group,
>> + OPTION_HTTP_CHUNKED_REQUESTS,
>> + "auto", svn_tristate_unknown));
>
> The last parameter should be chunked_requests (ie. use the value from
> the global options).
Oops good catch.
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Ben Reser <be...@reser.org>.
On Fri, Jul 12, 2013 at 12:59 PM, Greg Stein <gs...@gmail.com> wrote:
> On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>>...
>> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>>...
>> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
>> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
>> session->max_connections));
>>
>> - /* Do we need to take care with this proxy? */
>> - SVN_ERR(svn_config_get_bool(
>> - config, &session->detect_chunking,
>> - server_group,
>> - OPTION_HTTP_DETECT_CHUNKING,
>> - session->detect_chunking));
>> + /* Should we use chunked transfer encoding. */
>> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
>> + server_group,
>> + OPTION_HTTP_CHUNKED_REQUESTS,
>> + "auto", svn_tristate_unknown));
>
> The last parameter should be chunked_requests (ie. use the value from
> the global options).
Oops good catch.
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Greg Stein <gs...@gmail.com>.
On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>...
> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>...
> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
> session->max_connections));
>
> - /* Do we need to take care with this proxy? */
> - SVN_ERR(svn_config_get_bool(
> - config, &session->detect_chunking,
> - server_group,
> - OPTION_HTTP_DETECT_CHUNKING,
> - session->detect_chunking));
> + /* Should we use chunked transfer encoding. */
> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
> + server_group,
> + OPTION_HTTP_CHUNKED_REQUESTS,
> + "auto", svn_tristate_unknown));
The last parameter should be chunked_requests (ie. use the value from
the global options).
>...
Cheers,
-g
Re: svn commit: r1502440 - in /subversion/branches/1.8.x-tristate-chunked-request:
./ subversion/libsvn_ra_serf/serf.c subversion/libsvn_ra_serf/util.c subversion/libsvn_subr/config_file.c
Posted by Greg Stein <gs...@gmail.com>.
On Fri, Jul 12, 2013 at 2:53 AM, <br...@apache.org> wrote:
>...
> +++ subversion/branches/1.8.x-tristate-chunked-request/subversion/libsvn_ra_serf/serf.c Fri Jul 12 06:53:40 2013
>...
> @@ -293,12 +293,11 @@ load_config(svn_ra_serf__session_t *sess
> SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS,
> session->max_connections));
>
> - /* Do we need to take care with this proxy? */
> - SVN_ERR(svn_config_get_bool(
> - config, &session->detect_chunking,
> - server_group,
> - OPTION_HTTP_DETECT_CHUNKING,
> - session->detect_chunking));
> + /* Should we use chunked transfer encoding. */
> + SVN_ERR(svn_config_get_tristate(config, &chunked_requests,
> + server_group,
> + OPTION_HTTP_CHUNKED_REQUESTS,
> + "auto", svn_tristate_unknown));
The last parameter should be chunked_requests (ie. use the value from
the global options).
>...
Cheers,
-g