Esempio n. 1
0
void
np_srv_destroy(Npsrv *srv)
{
	np_tpool_decref (srv->tpool);
	np_tpool_cleanup (srv);
	np_usercache_destroy (srv);
	np_ctl_finalize (srv);
	free (srv);
}
Esempio n. 2
0
void
np_srv_destroy(Npsrv *srv)
{
	np_tpool_decref (srv->tpool);
	np_tpool_cleanup (srv);
	np_usercache_destroy (srv);
	np_net_shutdown (srv->netroot);
	np_assert_srv = NULL;
	free (srv);
}
Esempio n. 3
0
static Npfid *
_destroy_fid (Npfid *f)
{
	Npsrv *srv;
	Npfid *next;

	NP_ASSERT(f != NULL);
	NP_ASSERT(f->magic == FID_MAGIC);

	srv = f->conn->srv;
	next = f->next;
	if (f->refcount > 0 && (srv->flags & SRV_FLAGS_DEBUG_FIDPOOL)) {
		np_logmsg (srv, "_destroy_fid: fid %d has %d refs",
			   f->fid, f->refcount);
	}
	if ((f->type & P9_QTAUTH)) {
		if (srv->auth && srv->auth->clunk)
			(*srv->auth->clunk)(f);
	} else if ((f->type & P9_QTTMP)) {
		np_ctl_fiddestroy (f);
	} else {
		if (srv->fiddestroy)
			(*srv->fiddestroy)(f);
	}	
	if (f->user)
		np_user_decref(f->user);
	if (f->tpool)
		np_tpool_decref(f->tpool);
	if (f->aname)
		free (f->aname);
	pthread_mutex_destroy (&f->lock);
	f->magic = FID_MAGIC_FREED;
	free(f);

	return next;
}