END_TEST static void check_restore_clients(struct cstat *cstat, struct conf **parentconf, const char *restore_clients, int permitted) { struct conf **cconfs=NULL; fail_unless((cconfs=confs_alloc())!=NULL); fail_unless(!confs_init(cconfs)); fail_unless(!set_string(cconfs[OPT_CNAME], "cli1")); build_clientconfdir_file("cli1", restore_clients); fail_unless(!conf_load_clientconfdir(parentconf, cconfs)); fail_unless(!set_string(parentconf[OPT_CNAME], "cli2")); fail_unless(cstat_permitted(cstat, parentconf, cconfs)==permitted); confs_free(&cconfs); }
static int set_cstat_from_conf(struct cstat *cstat, struct conf **parentconfs, struct conf **cconfs) { struct strlist *s=NULL; // Make sure the permitted flag is set appropriately. cstat->permitted=cstat_permitted(cstat, parentconfs, cconfs); cstat->protocol=get_protocol(cconfs); sdirs_free((struct sdirs **)&cstat->sdirs); if(!(cstat->sdirs=sdirs_alloc()) || sdirs_init_from_confs((struct sdirs *)cstat->sdirs, cconfs)) return -1; strlists_free(&cstat->labels); for(s=get_strlist(cconfs[OPT_LABEL]); s; s=s->next) if(strlist_add_sorted(&cstat->labels, s->path, s->flag)) return -1; return 0; }