// Transfers
TAILQ_HEAD(xfers_queued, pakfire_xfer_element) xfers_queued;
TAILQ_HEAD(xfers_running, pakfire_xfer_element) xfers_running;
- TAILQ_HEAD(xfers_finished, pakfire_xfer_element) xfers_finished;
};
static int pakfire_httpclient_setup_curl(struct pakfire_httpclient* client) {
pakfire_httpclient_xfer_free(x);
}
- // Free any finished transfers
- while (!TAILQ_EMPTY(&client->xfers_finished)) {
- x = TAILQ_LAST(&client->xfers_finished, xfers_finished);
- TAILQ_REMOVE(&client->xfers_finished, x, nodes);
-
- pakfire_httpclient_xfer_free(x);
- }
-
if (client->share)
curl_share_cleanup(client->share);
if (client->curl)
// Init transfer queues
TAILQ_INIT(&c->xfers_queued);
TAILQ_INIT(&c->xfers_running);
- TAILQ_INIT(&c->xfers_finished);
// Setup cURL
r = pakfire_httpclient_setup_curl(c);
return 0;
ERROR:
- TAILQ_INSERT_TAIL(&client->xfers_finished, x, nodes);
+ pakfire_httpclient_xfer_free(x);
return r;
}
// Otherwise this transfer has finished
default:
if (x)
- TAILQ_INSERT_TAIL(&client->xfers_finished, x, nodes);
+ pakfire_httpclient_xfer_free(x);
if (r)
goto ERROR;
break;