void VRT_init_dir(struct cli *cli, struct director **bp, int idx, const void *priv) { const struct vrt_backend *t; struct vdi_simple *vs; ASSERT_CLI(); (void)cli; t = priv; ALLOC_OBJ(vs, VDI_SIMPLE_MAGIC); XXXAN(vs); vs->dir.magic = DIRECTOR_MAGIC; vs->dir.priv = vs; vs->dir.name = "simple"; REPLACE(vs->dir.vcl_name, t->vcl_name); vs->dir.getfd = vdi_simple_getfd; vs->dir.healthy = vdi_simple_healthy; vs->vrt = t; vs->backend = VBE_AddBackend(cli, t); if (vs->vrt->probe != NULL) VBP_Insert(vs->backend, vs->vrt->probe, vs->vrt->hosthdr); bp[idx] = &vs->dir; }
void VRT_init_dir_simple(struct cli *cli, struct director **bp, const struct vrt_dir_simple *t) { struct vdi_simple *vs; (void)cli; ALLOC_OBJ(vs, VDI_SIMPLE_MAGIC); XXXAN(vs); vs->dir.magic = DIRECTOR_MAGIC; vs->dir.priv = vs; vs->dir.name = "simple"; REPLACE(vs->dir.vcl_name, t->host->vcl_name); vs->dir.getfd = vdi_simple_getfd; vs->dir.fini = vdi_simple_fini; vs->dir.healthy = vdi_simple_healthy; vs->backend = VBE_AddBackend(cli, t->host); *bp = &vs->dir; }