Support backend reference counting

parent bd18be27
......@@ -96,13 +96,18 @@ vmod_director__init(VRT_CTX,
}
VCL_VOID
vmod_director__fini(struct vmod_all_healthy_director **dp) {
vmod_director__fini(struct vmod_all_healthy_director **dp)
{
struct vmod_all_healthy_director *d = *dp;
int i;
*dp = NULL;
if (d == NULL)
return;
CHECK_OBJ(d, VMOD_ALL_HEALTHY_DIRECTOR_MAGIC);
for (i = 0; i < d->nconsider; i++)
VRT_Assign_Backend(&d->consider[i], NULL);
VRT_Assign_Backend(&d->backend, NULL);
VRT_DelDirector(&d->dir);
free(TRUST_ME(d->consider));
FREE_OBJ(d);
......@@ -145,9 +150,9 @@ vmod_director_consider(VRT_CTX,
d->spcconsider = i;
d->consider = n;
}
d->consider[d->nconsider++] = b;
VRT_Assign_Backend(&d->consider[d->nconsider++], b);
if (d->backend == NULL)
d->backend = b;
VRT_Assign_Backend(&d->backend, b);
}
VCL_VOID
......@@ -163,7 +168,7 @@ vmod_director_set_backend(VRT_CTX,
return;
}
d->backend = b;
VRT_Assign_Backend(&d->backend, b);
}
VCL_BACKEND
......
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