static void varnish_stop(struct varnish *v) { char *r; if (v->cli_fd < 0) varnish_launch(v); if (vtc_error) return; 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) { r = NULL; (void)varnish_ask_cli(v, "status", &r); AN(r); if (!strcmp(r, "Child in state stopped")) break; free(r); (void)sleep (1); /* XXX: should fail eventually */ } }
static void apply_commandline_macros(void) { struct commandline_macro *cm; unsigned i, num; num = array_num(&commandline_macros); for (i=0; i<num; i++) { cm = array_get(&commandline_macros, i); if (cm->expansion != NULL) { macro_define_plain(&cm->where, cm->macro, &cm->where2, cm->expansion); } else { macro_undef(cm->macro); } dofree(cm, sizeof(*cm)); } array_setsize(&commandline_macros, 0); }