Commit 4f4b9e70 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Also tun the compiled VCL through cc(1) and try to load it into mgt process

when -C is specified, this makes it easier to do completeness test on the
VRT interface.


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1549 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 1b324b94
...@@ -237,26 +237,34 @@ mgt_CallCc(const char *source, struct vsb *sb) ...@@ -237,26 +237,34 @@ mgt_CallCc(const char *source, struct vsb *sb)
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
static char * static char *
mgt_VccCompile(struct vsb *sb, const char *b, const char *e) mgt_VccCompile(struct vsb *sb, const char *b, const char *e, int C_flag)
{ {
char *csrc, *vf = NULL; char *csrc, *vf = NULL;
csrc = VCC_Compile(sb, b, e); csrc = VCC_Compile(sb, b, e);
if (csrc != NULL) { if (csrc != NULL) {
if (C_flag)
fputs(csrc, stdout);
vf = mgt_CallCc(csrc, sb); vf = mgt_CallCc(csrc, sb);
if (C_flag && vf != NULL)
AZ(unlink(vf));
free(csrc); free(csrc);
} }
return (vf); return (vf);
} }
static char * static char *
mgt_VccCompileFile(struct vsb *sb, const char *fn) mgt_VccCompileFile(struct vsb *sb, const char *fn, int C_flag)
{ {
char *csrc, *vf = NULL; char *csrc, *vf = NULL;
csrc = VCC_CompileFile(sb, fn); csrc = VCC_CompileFile(sb, fn);
if (csrc != NULL) { if (csrc != NULL) {
if (C_flag)
fputs(csrc, stdout);
vf = mgt_CallCc(csrc, sb); vf = mgt_CallCc(csrc, sb);
if (C_flag && vf != NULL)
AZ(unlink(vf));
free(csrc); free(csrc);
} }
return (vf); return (vf);
...@@ -308,7 +316,7 @@ mgt_vcc_delbyname(const char *name) ...@@ -308,7 +316,7 @@ mgt_vcc_delbyname(const char *name)
int int
mgt_vcc_default(const char *b_arg, const char *f_arg, int C_flag) mgt_vcc_default(const char *b_arg, const char *f_arg, int C_flag)
{ {
char *addr, *port, *csrc; char *addr, *port;
char *buf, *vf; char *buf, *vf;
struct vsb *sb; struct vsb *sb;
struct vclprog *vp; struct vclprog *vp;
...@@ -338,20 +346,10 @@ mgt_vcc_default(const char *b_arg, const char *f_arg, int C_flag) ...@@ -338,20 +346,10 @@ mgt_vcc_default(const char *b_arg, const char *f_arg, int C_flag)
free(addr); free(addr);
free(port); free(port);
AN(buf); AN(buf);
if (C_flag) { vf = mgt_VccCompile(sb, buf, NULL, C_flag);
csrc = VCC_Compile(sb, buf, NULL);
if (csrc != NULL)
fputs(csrc, stdout);
}
vf = mgt_VccCompile(sb, buf, NULL);
free(buf); free(buf);
} else if (C_flag) {
csrc = VCC_CompileFile(sb, f_arg);
if (csrc != NULL)
fputs(csrc, stdout);
vf = NULL;
} else { } else {
vf = mgt_VccCompileFile(sb, f_arg); vf = mgt_VccCompileFile(sb, f_arg, C_flag);
} }
vsb_finish(sb); vsb_finish(sb);
if (vsb_len(sb) > 0) { if (vsb_len(sb) > 0) {
...@@ -432,7 +430,7 @@ mcf_config_inline(struct cli *cli, char **av, void *priv) ...@@ -432,7 +430,7 @@ mcf_config_inline(struct cli *cli, char **av, void *priv)
sb = vsb_new(NULL, NULL, 0, VSB_AUTOEXTEND); sb = vsb_new(NULL, NULL, 0, VSB_AUTOEXTEND);
XXXAN(sb); XXXAN(sb);
vf = mgt_VccCompile(sb, av[3], NULL); vf = mgt_VccCompile(sb, av[3], NULL, 0);
vsb_finish(sb); vsb_finish(sb);
if (vsb_len(sb) > 0) { if (vsb_len(sb) > 0) {
cli_out(cli, "%s", vsb_data(sb)); cli_out(cli, "%s", vsb_data(sb));
...@@ -463,7 +461,7 @@ mcf_config_load(struct cli *cli, char **av, void *priv) ...@@ -463,7 +461,7 @@ mcf_config_load(struct cli *cli, char **av, void *priv)
sb = vsb_new(NULL, NULL, 0, VSB_AUTOEXTEND); sb = vsb_new(NULL, NULL, 0, VSB_AUTOEXTEND);
XXXAN(sb); XXXAN(sb);
vf = mgt_VccCompileFile(sb, av[3]); vf = mgt_VccCompileFile(sb, av[3], 0);
vsb_finish(sb); vsb_finish(sb);
if (vsb_len(sb) > 0) { if (vsb_len(sb) > 0) {
cli_out(cli, "%s", vsb_data(sb)); cli_out(cli, "%s", vsb_data(sb));
......
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