Ivan Zhakov <ivan_at_visualsvn.com> writes:
> Log message:
> [[[
> Add serf library version to svn --version output.
>
> * subversion/libsvn_ra_serf/serf.c
> (RA_SERF_DESCRIPTION): Add version placeholders.
> (ra_serf_get_description): Add serf library version information to RA layer
> description.
> ]]]
>
> Thoughts?
I noticed today that the default user agent string produced by ra_serf
is
#define USER_AGENT "SVN/" SVN_VER_NUMBER " (" SVN_BUILD_TARGET ")" \
" serf/" \
APR_STRINGIFY(SERF_MAJOR_VERSION) "." \
APR_STRINGIFY(SERF_MINOR_VERSION) "." \
APR_STRINGIFY(SERF_PATCH_VERSION)
so it's fixed at compile time. If I build against a serf shared library
and then upgrade the serf library the default user agent remains at the
old value. I think the user agent should use serf_lib_version as well.
> Index: subversion/libsvn_ra_serf/serf.c
> ===================================================================
> --- subversion/libsvn_ra_serf/serf.c (revision 1513462)
> +++ subversion/libsvn_ra_serf/serf.c (working copy)
> @@ -59,13 +59,25 @@
> }
>
> #define RA_SERF_DESCRIPTION \
> - N_("Module for accessing a repository via WebDAV protocol using serf.")
> + N_("Module for accessing a repository via WebDAV protocol using serf %d.%d.%d.")
>
> /* Implements svn_ra__vtable_t.get_description(). */
> static const char *
> ra_serf_get_description(void)
> {
> - return _(RA_SERF_DESCRIPTION);
> + static char description_buf[256];
> + static char *description = NULL;
> +
> + if (!description)
> + {
> + int major, minor, patch;
> + serf_lib_version(&major, &minor, &patch);
> + apr_snprintf(description_buf, sizeof(description_buf),
> + _(RA_SERF_DESCRIPTION), major, minor, patch);
> + description = description_buf;
> + }
> +
> + return description;
> }
>
> /* Implements svn_ra__vtable_t.get_schemes(). */
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2013-08-15 13:59:55 CEST