[master] 3cd5a9934 Add VCS_String() public function, which depending on the argument returns version related strings.

Dridi Boukelmoune dridi at varni.sh
Tue May 21 08:31:02 UTC 2019


On Tue, May 21, 2019 at 10:28 AM Poul-Henning Kamp <phk at freebsd.org> wrote:
>
>
> commit 3cd5a9934d3d93c0b3f5f24c9f985d8eb59071dd
> Author: Poul-Henning Kamp <phk at FreeBSD.org>
> Date:   Tue May 21 08:26:40 2019 +0000
>
>     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
>
> diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
> index a0641897b..60a521ece 100644
> --- a/bin/varnishd/cache/cache_panic.c
> +++ b/bin/varnishd/cache/cache_panic.c
> @@ -734,7 +734,7 @@ pan_ic(const char *func, const char *file, int line, const char *cond,
>                 break;
>         }
>         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",
>             heritage.ident, Waiter_GetName());
>         VSB_printf(pan_vsb, "now = %f (mono), %f (real)\n",
> diff --git a/bin/varnishd/mgt/mgt_cli.c b/bin/varnishd/mgt/mgt_cli.c
> index ed38683de..63a696eaa 100644
> --- a/bin/varnishd/mgt/mgt_cli.c
> +++ b/bin/varnishd/mgt/mgt_cli.c
> @@ -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, "-----------------------------\n");
>         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, "Type 'help' for command list.\n");
>         VCLI_Out(cli, "Type 'quit' to close CLI session.\n");
> diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
> index 7f6622a01..02b9c7ed0 100644
> --- a/bin/varnishd/mgt/mgt_main.c
> +++ b/bin/varnishd/mgt/mgt_main.c
> @@ -843,7 +843,7 @@ main(int argc, char * const *argv)
>         if (pfh2 != NULL)
>                 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);
>
>         if (d_flag)
> diff --git a/include/vcs.h b/include/vcs.h
> index d3a1585fa..8e605eb97 100644
> --- a/include/vcs.h
> +++ b/include/vcs.h
> @@ -29,5 +29,5 @@
>   */
>
>  /* from libvarnish/version.c */
> -extern const char *VCS_version;
>  void VCS_Message(const char *);
> +const char *VCS_String(const char *which);
> diff --git a/lib/libvarnish/version.c b/lib/libvarnish/version.c
> index b2258ccde..db3398f22 100644
> --- a/lib/libvarnish/version.c
> +++ b/lib/libvarnish/version.c
> @@ -33,16 +33,49 @@
>
>  #include <stdio.h>
>
> +#include "vdef.h"
> +#include "vas.h"
>  #include "vcs.h"
>  #include "vcs_version.h"
>
> -const char *VCS_version =
> -    PACKAGE_TARNAME "-" PACKAGE_VERSION " revision " VCS_Version;
> -
>  void
>  VCS_Message(const char *progname)
>  {
> -       fprintf(stderr, "%s (%s)\n", progname, VCS_version);
> -       fprintf(stderr, "Copyright (c) 2006 Verdens Gang AS\n");
> -       fprintf(stderr, "Copyright (c) 2006-2019 Varnish Software AS\n");
> +       fprintf(stderr, "%s %s", progname, VCS_String("M"));
> +}
> +
> +const char *
> +VCS_String(const char *which)
> +{
> +       AN(which);
> +       assert(which[1] == '\0');

Why not simply take a char here?

> +       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));
>  }
> diff --git a/lib/libvarnishapi/libvarnishapi.map b/lib/libvarnishapi/libvarnishapi.map
> index addfb3077..17f982ddd 100644
> --- a/lib/libvarnishapi/libvarnishapi.map
> +++ b/lib/libvarnishapi/libvarnishapi.map
> @@ -167,3 +167,10 @@ LIBVARNISHAPI_2.2 {
>      local:
>         *;
>  };
> +
> +LIBVARNISHAPI_2.3 {    /* 2019-09-15 release */
> +    global:
> +       VCS_String;
> +    local:
> +       *;
> +};
> diff --git a/lib/libvarnishapi/vsl_query.c b/lib/libvarnishapi/vsl_query.c
> index 42596af10..a60bc6017 100644
> --- a/lib/libvarnishapi/vsl_query.c
> +++ b/lib/libvarnishapi/vsl_query.c
> @@ -348,7 +348,7 @@ vslq_exec(const struct vex *vex, struct VSL_transaction * const ptrans[])
>         default:
>                 return (vslq_test(vex, ptrans));
>         }
> -       NEEDLESS(return 0);
> +       NEEDLESS(return (0));
>  }
>
>  struct vslq_query *
> diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
> index 4d8734d4c..d431df1cf 100755
> --- a/lib/libvcc/vmodtool.py
> +++ b/lib/libvcc/vmodtool.py
> @@ -1023,7 +1023,7 @@ class vcc(object):
>          t = '\t"'
>          for i in json.dumps(jl, indent=2, separators=(",", ": ")):
>              if i == '\n':
> -                fo.write(t + '\\n"\n')
> +                fo.write(t + ' "\n')
>                  t = '\t"'
>              else:
>                  if i in '"\\':
> _______________________________________________
> varnish-commit mailing list
> varnish-commit at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit


More information about the varnish-commit mailing list