
tfheen at varnish-cache
May 24, 2012, 5:47 AM
Post #1 of 2
(59 views)
Permalink
|
|
[3.0] 444e642 Add an explicit macro_undef() function so we don't pass a NULL argument to a printflike function.
|
|
commit 444e642f78ddc3bccea79d7c7707c6f0517bdb69 Author: Poul-Henning Kamp <phk [at] FreeBSD> Date: Mon Apr 23 11:35:56 2012 +0000 Add an explicit macro_undef() function so we don't pass a NULL argument to a printflike function. diff --git a/bin/varnishtest/vtc.c b/bin/varnishtest/vtc.c index 53cbdcd..72caa2a 100644 --- a/bin/varnishtest/vtc.c +++ b/bin/varnishtest/vtc.c @@ -90,6 +90,8 @@ macro_def(struct vtclog *vl, const char *instance, const char *name, struct macro *m; va_list ap; + AN(fmt); + if (instance != NULL) { bprintf(buf1, "%s_%s", instance, name); name = buf1; @@ -99,23 +101,40 @@ macro_def(struct vtclog *vl, const char *instance, const char *name, VTAILQ_FOREACH(m, ¯o_list, list) if (!strcmp(name, m->name)) break; - if (m == NULL && fmt != NULL) { + if (m == NULL) { m = calloc(sizeof *m, 1); AN(m); REPLACE(m->name, name); VTAILQ_INSERT_TAIL(¯o_list, m, list); } - if (fmt != NULL) { - AN(m); - va_start(ap, fmt); - free(m->val); - m->val = NULL; - vbprintf(buf2, fmt, ap); - va_end(ap); - m->val = strdup(buf2); - AN(m->val); - vtc_log(vl, 4, "macro def %s=%s", name, m->val); - } else if (m != NULL) { + AN(m); + va_start(ap, fmt); + free(m->val); + m->val = NULL; + vbprintf(buf2, fmt, ap); + va_end(ap); + m->val = strdup(buf2); + AN(m->val); + vtc_log(vl, 4, "macro def %s=%s", name, m->val); + AZ(pthread_mutex_unlock(¯o_mtx)); +} + +void +macro_undef(struct vtclog *vl, const char *instance, const char *name) +{ + char buf1[256]; + struct macro *m; + + if (instance != NULL) { + bprintf(buf1, "%s_%s", instance, name); + name = buf1; + } + + AZ(pthread_mutex_lock(¯o_mtx)); + VTAILQ_FOREACH(m, ¯o_list, list) + if (!strcmp(name, m->name)) + break; + if (m != NULL) { vtc_log(vl, 4, "macro undef %s", name); VTAILQ_REMOVE(¯o_list, m, list); free(m->name); diff --git a/bin/varnishtest/vtc.h b/bin/varnishtest/vtc.h index 16861d3..2ee284f 100644 --- a/bin/varnishtest/vtc.h +++ b/bin/varnishtest/vtc.h @@ -80,6 +80,7 @@ void vtc_hexdump(struct vtclog *vl, int lvl, const char *pfx, int exec_file(const char *fn, const char *script, const char *tmpdir, char *logbuf, unsigned loglen); +void macro_undef(struct vtclog *vl, const char *instance, const char *name); void macro_def(struct vtclog *vl, const char *instance, const char *name, const char *fmt, ...); struct vsb *macro_expand(struct vtclog *vl, const char *text); diff --git a/bin/varnishtest/vtc_server.c b/bin/varnishtest/vtc_server.c index d1787b1..04a1bed 100644 --- a/bin/varnishtest/vtc_server.c +++ b/bin/varnishtest/vtc_server.c @@ -147,9 +147,9 @@ server_delete(struct server *s) { CHECK_OBJ_NOTNULL(s, SERVER_MAGIC); - macro_def(s->vl, s->name, "addr", NULL); - macro_def(s->vl, s->name, "port", NULL); - macro_def(s->vl, s->name, "sock", NULL); + macro_undef(s->vl, s->name, "addr"); + macro_undef(s->vl, s->name, "port"); + macro_undef(s->vl, s->name, "sock"); vtc_logclose(s->vl); free(s->name); /* XXX: MEMLEAK (?) (VSS ??) */ diff --git a/bin/varnishtest/vtc_varnish.c b/bin/varnishtest/vtc_varnish.c index 1b3b445..e97fab2 100644 --- a/bin/varnishtest/vtc_varnish.c +++ b/bin/varnishtest/vtc_varnish.c @@ -527,9 +527,9 @@ varnish_stop(struct varnish *v) varnish_launch(v); if (vtc_error) return; - macro_def(v->vl, v->name, "addr", NULL); - macro_def(v->vl, v->name, "port", NULL); - macro_def(v->vl, v->name, "sock", NULL); + macro_undef(v->vl, v->name, "addr"); + macro_undef(v->vl, v->name, "port"); + macro_undef(v->vl, v->name, "sock"); vtc_log(v->vl, 2, "Stop"); (void)varnish_ask_cli(v, "stop", NULL); while (1) { _______________________________________________ varnish-commit mailing list varnish-commit [at] varnish-cache https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit
|