Commit 46da12f7 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Fix a ordering issue in loading labeled vcls

parent 76b6a042
......@@ -299,20 +299,21 @@ static void
ban_export(void)
{
struct ban *b;
struct vsb vsb;
struct vsb *vsb;
unsigned ln;
Lck_AssertHeld(&ban_mtx);
ln = VSC_C_main->bans_persisted_bytes -
VSC_C_main->bans_persisted_fragmentation;
AN(VSB_new(&vsb, NULL, ln, VSB_AUTOEXTEND));
vsb = VSB_new_auto();
AN(vsb);
VTAILQ_FOREACH_REVERSE(b, &ban_head, banhead_s, list) {
AZ(VSB_bcat(&vsb, b->spec, ban_len(b->spec)));
AZ(VSB_bcat(vsb, b->spec, ban_len(b->spec)));
}
AZ(VSB_finish(&vsb));
assert(VSB_len(&vsb) == ln);
STV_BanExport((const uint8_t *)VSB_data(&vsb), VSB_len(&vsb));
VSB_delete(&vsb);
AZ(VSB_finish(vsb));
assert(VSB_len(vsb) == ln);
STV_BanExport((const uint8_t *)VSB_data(vsb), VSB_len(vsb));
VSB_destroy(&vsb);
VSC_C_main->bans_persisted_bytes = ln;
VSC_C_main->bans_persisted_fragmentation = 0;
}
......
......@@ -343,6 +343,8 @@ mgt_push_vcls_and_start(struct cli *cli, unsigned *status, char **p)
AZ(mgt_vcl_setstate(cli, active_vcl, VCL_STATE_WARM));
VTAILQ_FOREACH(vp, &vclhead, list) {
if (!VTAILQ_EMPTY(&vp->dfrom))
continue;
if (!strcmp(vp->state, VCL_STATE_LABEL))
continue;
if (mgt_cli_askchild(status, p, "vcl.load \"%s\" %s %d%s\n",
......@@ -360,6 +362,18 @@ mgt_push_vcls_and_start(struct cli *cli, unsigned *status, char **p)
free(*p);
*p = NULL;
}
VTAILQ_FOREACH(vp, &vclhead, list) {
if (VTAILQ_EMPTY(&vp->dfrom))
continue;
if (!strcmp(vp->state, VCL_STATE_LABEL))
continue;
if (mgt_cli_askchild(status, p, "vcl.load \"%s\" %s %d%s\n",
vp->name, vp->fname, vp->warm, vp->state))
return (1);
free(*p);
*p = NULL;
}
if (mgt_cli_askchild(status, p, "vcl.use \"%s\"\n", active_vcl->name))
return (1);
free(*p);
......
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