Пример #1
0
void
trelease(spdid_t spdid, td_t td)
{
	struct torrent *t;
	td_t ntd;

	if (!tor_is_usrdef(td)) return;
	t = tor_lookup(td);
	if (!t) goto done;
	ntd = (td_t)t->data;
	server_trelease(cos_spd_id(), ntd);
	tor_free(t);
done:
	return;
}
Пример #2
0
static void http_free_request(struct http_request *r)
{
	struct connection *c = r->c;
	struct http_request *next = r->next, *prev = r->prev;

	assert(c->pending_reqs);
	if (r->next != r) {
		next->prev = r->prev;
		prev->next = r->next;
	} //else assert(r->prev == r && c->pending_reqs == r);
	r->next = r->prev = NULL;
	//assert(c->pending_reqs == r);
	if (c->pending_reqs == r) {
		c->pending_reqs = (r == next) ? NULL : next;
	}
	server_trelease(cos_spd_id(), r->content_id);
	conn_refcnt_dec(c);
	__http_free_request(r);
}