Do not publish the "git-XXX" tag in server descriptors

Instead, allow packagers to put a 'TOR_BUILD_TAG' field in the
server descriptor to indicate a platform-specific value, if they
need to.  (According to weasel, this was his use for the git- tag
previously.)

This is part of 2988
This commit is contained in:
Nick Mathewson 2012-05-11 18:06:12 -04:00
parent a2f0e7a65b
commit 31eb73f88e
4 changed files with 27 additions and 4 deletions

View File

@ -3,4 +3,8 @@
operating system's name (e.g., "Linux", "Darwin", "Windows 7"), operating system's name (e.g., "Linux", "Darwin", "Windows 7"),
and not its service pack level (for Windows), or its CPU and not its service pack level (for Windows), or its CPU
architecture (for Unix). This is part of ticket 2988. architecture (for Unix). This is part of ticket 2988.
- Do not include the (git-XYZ) tag in published server descriptor
platform lines. This is part of ticket 2988.
- Allow packagers to insert an extra string in server descriptor
platform lines by setting the preprocessor variable TOR_BUILD_TAG.
This is part of ticket 2988.

View File

@ -783,6 +783,7 @@ extern const char tor_git_revision[]; /* from tor_main.c */
/** The version of this Tor process, as parsed. */ /** The version of this Tor process, as parsed. */
static char *the_tor_version = NULL; static char *the_tor_version = NULL;
static char *the_short_tor_version = NULL;
/** Return the current Tor version. */ /** Return the current Tor version. */
const char * const char *
@ -790,14 +791,31 @@ get_version(void)
{ {
if (the_tor_version == NULL) { if (the_tor_version == NULL) {
if (strlen(tor_git_revision)) { if (strlen(tor_git_revision)) {
tor_asprintf(&the_tor_version, "%s (git-%s)", VERSION, tor_git_revision); tor_asprintf(&the_tor_version, "%s (git-%s)", get_short_version(),
tor_git_revision);
} else { } else {
the_tor_version = tor_strdup(VERSION); the_tor_version = tor_strdup(get_short_version());
} }
} }
return the_tor_version; return the_tor_version;
} }
/** Return the current Tor version, without any git tag. */
const char *
get_short_version(void)
{
if (the_short_tor_version == NULL) {
#ifdef TOR_BUILD_TAG
tor_asprintf(&the_short_tor_version, "%s (%s)", VERSION, TOR_BUILD_TAG);
#else
the_short_tor_version = tor_strdup(VERSION);
#endif
}
return the_short_tor_version;
}
/** Release additional memory allocated in options /** Release additional memory allocated in options
*/ */
static void static void

View File

@ -22,6 +22,7 @@ const char *safe_str(const char *address);
const char *escaped_safe_str_client(const char *address); const char *escaped_safe_str_client(const char *address);
const char *escaped_safe_str(const char *address); const char *escaped_safe_str(const char *address);
const char *get_version(void); const char *get_version(void);
const char *get_short_version(void);
int config_get_lines(const char *string, config_line_t **result, int extended); int config_get_lines(const char *string, config_line_t **result, int extended);
void config_free_lines(config_line_t *front); void config_free_lines(config_line_t *front);

View File

@ -1949,7 +1949,7 @@ router_guess_address_from_dir_headers(uint32_t *guess)
void void
get_platform_str(char *platform, size_t len) get_platform_str(char *platform, size_t len)
{ {
tor_snprintf(platform, len, "Tor %s on %s", get_version(), get_uname()); tor_snprintf(platform, len, "Tor %s on %s", get_short_version(), get_uname());
} }
/* XXX need to audit this thing and count fenceposts. maybe /* XXX need to audit this thing and count fenceposts. maybe