Stefan Kueng <>,


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

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 <>,