int ppool_init (Npsrv *srv) { PathPool pp; if (!(pp = malloc (sizeof (*pp)))) goto error; pthread_mutex_init (&pp->lock, NULL); pp->hash = hash_create (1000, (hash_key_f)hash_key_string, (hash_cmp_f)strcmp, NULL); if (!pp->hash) { free (pp); goto error; } srv->srvaux = pp; if (!np_ctl_addfile (srv->ctlroot, "files", _ppool_dump, srv, 0)) goto error; return 0; error: ppool_fini (srv); return -1; }
void diod_fini (Npsrv *srv) { ppool_fini (srv); }