r28613 | cmpilato | 2007-12-20 16:04:55 -0600 (Thu, 20 Dec 2007)
Provide a better implementation of the clientstring feature which was
first introduced in r28503 but reverted in r28513 due to a circular
dependency.
The new implementation uses a callback to pull the string from the
client instead of using a static string.
* subversion/include/svn_client.h
(svn_client_ctx_t): Add new member variable 'client_name'.
* subversion/include/svn_ra.h
(svn_ra_get_client_string_func_t): New callback type.
(svn_ra_callbacks2_t): Add 'get_client_string' vtable member.
* subversion/libsvn_client/ra.c
(get_client_string): New function.
(svn_client__open_ra_session_internal): Populate get_client_string'
vtable member.
* subversion/libsvn_ra_neon/session.c
(svn_ra_neon__open): Fetch and use the custom client string.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__connection_t): Add new 'useragent' member.
* subversion/libsvn_ra_serf/serf.c
(svn_ra_serf__open): Fetch and store the custom client string.
* subversion/libsvn_ra_serf/propfind_buckets.c
(create_propfind_body): Use the session client string.
* subversion/libsvn_ra_serf/util.c
(svn_ra_serf__setup_serf_req): Use the session client string.
Patch by: Stefan Kueng <tortoisesvn@gmail.com>,
me
------------------------------------------------------------------------