[master] 1819377 Let mgt_vcl register its own cli commands
Poul-Henning Kamp
phk at FreeBSD.org
Sun May 22 01:06:05 CEST 2016
commit 1819377293a4dfa106fa45e3717577e9219c228f
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Sat May 21 22:22:45 2016 +0000
Let mgt_vcl register its own cli commands
diff --git a/bin/varnishd/mgt/mgt.h b/bin/varnishd/mgt/mgt.h
index 3d03cc3..7152530 100644
--- a/bin/varnishd/mgt/mgt.h
+++ b/bin/varnishd/mgt/mgt.h
@@ -68,6 +68,7 @@ void mgt_cli_master(const char *M_arg);
void mgt_cli_secret(const char *S_arg);
void mgt_cli_close_all(void);
void mgt_DumpRstCli(void);
+void mgt_cli_init_cls(void);
/* mgt_jail.c */
diff --git a/bin/varnishd/mgt/mgt_cli.c b/bin/varnishd/mgt/mgt_cli.c
index dcebb2a..26a7a50 100644
--- a/bin/varnishd/mgt/mgt_cli.c
+++ b/bin/varnishd/mgt/mgt_cli.c
@@ -100,18 +100,11 @@ mcf_banner(struct cli *cli, const char *const *av, void *priv)
/*--------------------------------------------------------------------*/
-/* XXX: what order should this list be in ? */
static struct cli_proto cli_proto[] = {
{ CLICMD_BANNER, "", mcf_banner },
{ CLICMD_SERVER_STATUS, "", mcf_server_status },
{ CLICMD_SERVER_START, "", mcf_server_start },
{ CLICMD_SERVER_STOP, "", mcf_server_stop },
- { CLICMD_VCL_LOAD, "", mcf_vcl_load },
- { CLICMD_VCL_INLINE, "", mcf_vcl_inline },
- { CLICMD_VCL_USE, "", mcf_vcl_use },
- { CLICMD_VCL_STATE, "", mcf_vcl_state },
- { CLICMD_VCL_DISCARD, "", mcf_vcl_discard },
- { CLICMD_VCL_LIST, "", mcf_vcl_list },
{ CLICMD_PARAM_SHOW, "", mcf_param_show },
{ CLICMD_PARAM_SET, "", mcf_param_set },
{ CLICMD_PANIC_SHOW, "", mcf_panic_show },
@@ -363,7 +356,7 @@ mgt_cli_cb_after(const struct cli *cli)
/*--------------------------------------------------------------------*/
-static void
+void
mgt_cli_init_cls(void)
{
@@ -414,8 +407,6 @@ mgt_cli_setup(int fdi, int fdo, int verbose, const char *ident,
(void)ident;
(void)verbose;
- if (mgt_cls == NULL)
- mgt_cli_init_cls();
cli = VCLS_AddFd(mgt_cls, fdi, fdo, closefunc, priv);
diff --git a/bin/varnishd/mgt/mgt_cli.h b/bin/varnishd/mgt/mgt_cli.h
index 49d849a..8757c2c 100644
--- a/bin/varnishd/mgt/mgt_cli.h
+++ b/bin/varnishd/mgt/mgt_cli.h
@@ -39,13 +39,5 @@ cli_func_t mcf_panic_clear;
cli_func_t mcf_param_show;
cli_func_t mcf_param_set;
-/* mgt_vcc.c */
-cli_func_t mcf_vcl_load;
-cli_func_t mcf_vcl_inline;
-cli_func_t mcf_vcl_use;
-cli_func_t mcf_vcl_state;
-cli_func_t mcf_vcl_discard;
-cli_func_t mcf_vcl_list;
-
/* stevedore.c */
extern struct cli_proto cli_stv[];
diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
index 47ae1ea..42a0977 100644
--- a/bin/varnishd/mgt/mgt_main.c
+++ b/bin/varnishd/mgt/mgt_main.c
@@ -691,6 +691,8 @@ main(int argc, char * const *argv)
}
}
+ mgt_cli_init_cls(); // CLI commands can be registered
+
if (!jailed)
VJ_Init(NULL);
diff --git a/bin/varnishd/mgt/mgt_vcl.c b/bin/varnishd/mgt/mgt_vcl.c
index 858c5ec..770c551 100644
--- a/bin/varnishd/mgt/mgt_vcl.c
+++ b/bin/varnishd/mgt/mgt_vcl.c
@@ -42,6 +42,7 @@
#include "vcli.h"
#include "vcli_priv.h"
+#include "vcli_serve.h"
#include "vev.h"
#include "vtim.h"
@@ -271,7 +272,7 @@ mgt_push_vcls_and_start(struct cli *cli, unsigned *status, char **p)
/*--------------------------------------------------------------------*/
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_inline(struct cli *cli, const char * const *av, void *priv)
{
struct vclprog *vp;
@@ -288,7 +289,7 @@ mcf_vcl_inline(struct cli *cli, const char * const *av, void *priv)
mgt_new_vcl(cli, av[2], av[3], "<vcl.inline>", av[4], 0);
}
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_load(struct cli *cli, const char * const *av, void *priv)
{
struct vclprog *vp;
@@ -317,7 +318,7 @@ mcf_find_vcl(struct cli *cli, const char *name)
return (NULL);
}
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_state(struct cli *cli, const char * const *av, void *priv)
{
struct vclprog *vp;
@@ -353,7 +354,7 @@ mcf_vcl_state(struct cli *cli, const char * const *av, void *priv)
}
}
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_use(struct cli *cli, const char * const *av, void *priv)
{
unsigned status;
@@ -386,7 +387,7 @@ mcf_vcl_use(struct cli *cli, const char * const *av, void *priv)
free(p);
}
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_discard(struct cli *cli, const char * const *av, void *priv)
{
unsigned status;
@@ -411,7 +412,7 @@ mcf_vcl_discard(struct cli *cli, const char * const *av, void *priv)
mgt_vcl_del(vp);
}
-void
+static void __match_proto__(cli_func_t)
mcf_vcl_list(struct cli *cli, const char * const *av, void *priv)
{
unsigned status;
@@ -455,6 +456,18 @@ mgt_vcl_poker(const struct vev *e, int what)
/*--------------------------------------------------------------------*/
+static struct cli_proto cli_vcl[] = {
+ { CLICMD_VCL_LOAD, "", mcf_vcl_load },
+ { CLICMD_VCL_INLINE, "", mcf_vcl_inline },
+ { CLICMD_VCL_USE, "", mcf_vcl_use },
+ { CLICMD_VCL_STATE, "", mcf_vcl_state },
+ { CLICMD_VCL_DISCARD, "", mcf_vcl_discard },
+ { CLICMD_VCL_LIST, "", mcf_vcl_list },
+ { NULL }
+};
+
+/*--------------------------------------------------------------------*/
+
static void
mgt_vcl_atexit(void)
{
@@ -482,4 +495,6 @@ mgt_vcl_init(void)
AZ(vev_add(mgt_evb, e_poker));
AZ(atexit(mgt_vcl_atexit));
+
+ VCLS_AddFunc(mgt_cls, 0, cli_vcl);
}
More information about the varnish-commit
mailing list