Hello all, The enclosed patch saves the version string in a vsb, which is retrieved in both version.c and mgt_cli.c for the "banner" command.
Best, Geoff $ varnishadm -T 127.0.0.1:6082 banner ----------------------------- Varnish Cache CLI 1.0 ----------------------------- varnish-trunk revision f81aedd -sfile,-smalloc,-hcritbit Type 'help' for command list. Type 'quit' to close CLI session. -- ** * * UPLEX - Nils Goroll Systemoptimierung Scheffelstraße 32 (ACHTUNG: neue Adresse) 22301 Hamburg Tel +49 40 2880 5731 Mob +49 176 636 90917 Fax +49 40 42949753 http://uplex.de
diff --git a/bin/varnishd/mgt/mgt_cli.c b/bin/varnishd/mgt/mgt_cli.c
index 3b0c1a7..37791a2 100644
--- a/bin/varnishd/mgt/mgt_cli.c
+++ b/bin/varnishd/mgt/mgt_cli.c
@@ -79,6 +79,7 @@ mcf_banner(struct cli *cli, const char *const *av, void *priv)
VCLI_Out(cli, "-----------------------------\n");
VCLI_Out(cli, "Varnish Cache CLI 1.0\n");
VCLI_Out(cli, "-----------------------------\n");
+ VCLI_Out(cli, "%s\n", VCS_GetRevision());
VCLI_Out(cli, "%s\n", VSB_data(vident) + 1);
VCLI_Out(cli, "\n");
VCLI_Out(cli, "Type 'help' for command list.\n");
diff --git a/include/vcs.h b/include/vcs.h
index f764100..3e4b1a0 100644
--- a/include/vcs.h
+++ b/include/vcs.h
@@ -29,4 +29,5 @@
*/
/* from libvarnish/version.c */
+char *VCS_GetRevision(void);
void VCS_Message(const char *);
diff --git a/include/vsb.h b/include/vsb.h
index e17fe5b..0edf047 100644
--- a/include/vsb.h
+++ b/include/vsb.h
@@ -31,6 +31,7 @@
#ifndef VSB_H_INCLUDED
#define VSB_H_INCLUDED
+#include <sys/types.h>
#include "vdef.h"
/*
diff --git a/lib/libvarnish/version.c b/lib/libvarnish/version.c
index 2220a69..fe230ca 100644
--- a/lib/libvarnish/version.c
+++ b/lib/libvarnish/version.c
@@ -35,12 +35,28 @@
#include "vcs.h"
#include "vcs_version.h"
+#include "vsb.h"
+
+static struct vsb *vrevision;
+
+char *
+VCS_GetRevision()
+{
+ if (vrevision == NULL) {
+ vrevision = VSB_new(NULL, NULL, sizeof(PACKAGE_TARNAME)
+ + sizeof(PACKAGE_VERSION) + sizeof(VCS_Version)
+ + sizeof("- revision ") + 1, VSB_FIXEDLEN);
+ VSB_printf(vrevision, "%s-%s revision %s", PACKAGE_TARNAME,
+ PACKAGE_VERSION, VCS_Version);
+ VSB_finish(vrevision);
+ }
+ return VSB_data(vrevision);
+}
void
VCS_Message(const char *progname)
{
- fprintf(stderr, "%s (%s-%s revision %s)\n", progname,
- PACKAGE_TARNAME, PACKAGE_VERSION, VCS_Version);
+ fprintf(stderr, "%s (%s)\n", progname, VCS_GetRevision());
fprintf(stderr, "Copyright (c) 2006 Verdens Gang AS\n");
fprintf(stderr, "Copyright (c) 2006-2011 Varnish Software AS\n");
}
signature.asc
Description: OpenPGP digital signature
_______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
