Commit 3cd5a993 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add VCS_String() public function, which depending on the argument

returns version related strings.

Get rid of global, but pretty useles variable VCS_version.

Closes: #2936
parent 5aea717e
...@@ -734,7 +734,7 @@ pan_ic(const char *func, const char *file, int line, const char *cond, ...@@ -734,7 +734,7 @@ pan_ic(const char *func, const char *file, int line, const char *cond,
break; break;
} }
VSB_printf(pan_vsb, "version = %s, vrt api = %u.%u\n", VSB_printf(pan_vsb, "version = %s, vrt api = %u.%u\n",
VCS_version, VRT_MAJOR_VERSION, VRT_MINOR_VERSION); VCS_String("V"), VRT_MAJOR_VERSION, VRT_MINOR_VERSION);
VSB_printf(pan_vsb, "ident = %s,%s\n", VSB_printf(pan_vsb, "ident = %s,%s\n",
heritage.ident, Waiter_GetName()); heritage.ident, Waiter_GetName());
VSB_printf(pan_vsb, "now = %f (mono), %f (real)\n", VSB_printf(pan_vsb, "now = %f (mono), %f (real)\n",
......
...@@ -81,7 +81,7 @@ mcf_banner(struct cli *cli, const char *const *av, void *priv) ...@@ -81,7 +81,7 @@ mcf_banner(struct cli *cli, const char *const *av, void *priv)
VCLI_Out(cli, "Varnish Cache CLI 1.0\n"); VCLI_Out(cli, "Varnish Cache CLI 1.0\n");
VCLI_Out(cli, "-----------------------------\n"); VCLI_Out(cli, "-----------------------------\n");
VCLI_Out(cli, "%s\n", VSB_data(vident) + 1); VCLI_Out(cli, "%s\n", VSB_data(vident) + 1);
VCLI_Out(cli, "%s\n", VCS_version); VCLI_Out(cli, "%s\n", VCS_String("V"));
VCLI_Out(cli, "\n"); VCLI_Out(cli, "\n");
VCLI_Out(cli, "Type 'help' for command list.\n"); VCLI_Out(cli, "Type 'help' for command list.\n");
VCLI_Out(cli, "Type 'quit' to close CLI session.\n"); VCLI_Out(cli, "Type 'quit' to close CLI session.\n");
......
...@@ -843,7 +843,7 @@ main(int argc, char * const *argv) ...@@ -843,7 +843,7 @@ main(int argc, char * const *argv)
if (pfh2 != NULL) if (pfh2 != NULL)
VPF_Write(pfh2); VPF_Write(pfh2);
MGT_Complain(C_DEBUG, "Version: %s", VCS_version); MGT_Complain(C_DEBUG, "Version: %s", VCS_String("V"));
MGT_Complain(C_DEBUG, "Platform: %s", VSB_data(vident) + 1); MGT_Complain(C_DEBUG, "Platform: %s", VSB_data(vident) + 1);
if (d_flag) if (d_flag)
......
...@@ -29,5 +29,5 @@ ...@@ -29,5 +29,5 @@
*/ */
/* from libvarnish/version.c */ /* from libvarnish/version.c */
extern const char *VCS_version;
void VCS_Message(const char *); void VCS_Message(const char *);
const char *VCS_String(const char *which);
...@@ -33,16 +33,49 @@ ...@@ -33,16 +33,49 @@
#include <stdio.h> #include <stdio.h>
#include "vdef.h"
#include "vas.h"
#include "vcs.h" #include "vcs.h"
#include "vcs_version.h" #include "vcs_version.h"
const char *VCS_version =
PACKAGE_TARNAME "-" PACKAGE_VERSION " revision " VCS_Version;
void void
VCS_Message(const char *progname) VCS_Message(const char *progname)
{ {
fprintf(stderr, "%s (%s)\n", progname, VCS_version); fprintf(stderr, "%s %s", progname, VCS_String("M"));
fprintf(stderr, "Copyright (c) 2006 Verdens Gang AS\n"); }
fprintf(stderr, "Copyright (c) 2006-2019 Varnish Software AS\n");
const char *
VCS_String(const char *which)
{
AN(which);
assert(which[1] == '\0');
switch(*which) {
case 'T':
return (PACKAGE_TARNAME);
case 'P':
return (PACKAGE_VERSION);
case 'R':
return (VCS_Version);
case 'V':
return (
PACKAGE_TARNAME
"-" PACKAGE_VERSION
" revision " VCS_Version
);
case 'M':
return (
"("
PACKAGE_TARNAME
"-" PACKAGE_VERSION
" revision " VCS_Version
")"
"\n"
"Copyright (c) 2006 Verdens Gang AS\n"
"Copyright (c) 2006-2019 Varnish Software AS\n"
);
default:
WRONG("Wrong argument to VCS_String");
}
NEEDLESS(return (0));
} }
...@@ -167,3 +167,10 @@ LIBVARNISHAPI_2.2 { ...@@ -167,3 +167,10 @@ LIBVARNISHAPI_2.2 {
local: local:
*; *;
}; };
LIBVARNISHAPI_2.3 { /* 2019-09-15 release */
global:
VCS_String;
local:
*;
};
...@@ -348,7 +348,7 @@ vslq_exec(const struct vex *vex, struct VSL_transaction * const ptrans[]) ...@@ -348,7 +348,7 @@ vslq_exec(const struct vex *vex, struct VSL_transaction * const ptrans[])
default: default:
return (vslq_test(vex, ptrans)); return (vslq_test(vex, ptrans));
} }
NEEDLESS(return 0); NEEDLESS(return (0));
} }
struct vslq_query * struct vslq_query *
......
...@@ -1023,7 +1023,7 @@ class vcc(object): ...@@ -1023,7 +1023,7 @@ class vcc(object):
t = '\t"' t = '\t"'
for i in json.dumps(jl, indent=2, separators=(",", ": ")): for i in json.dumps(jl, indent=2, separators=(",", ": ")):
if i == '\n': if i == '\n':
fo.write(t + '\\n"\n') fo.write(t + ' "\n')
t = '\t"' t = '\t"'
else: else:
if i in '"\\': if i in '"\\':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment