return NULL;
}
-
static int pakfire_httpclient_remove(
struct pakfire_httpclient* self, struct pakfire_httpclient_xfer* e) {
int r;
struct pakfire_httpclient* self, struct pakfire_httpclient_xfer* e) {
int r;
+ // Remove the handle if we ware launching again
+ switch (e->status) {
+ case PAKFIRE_XFER_RUNNING:
+ r = pakfire_httpclient_remove(self, e);
+ if (r < 0)
+ return r;
+ break;
+
+ default:
+ break;
+ }
+
// Prepare the xfer
r = pakfire_xfer_prepare(e->xfer, self->progress, 0);
if (r < 0)
return -EINVAL;
}
- // Remove the handle
- r = pakfire_httpclient_remove(self, e);
- if (r < 0)
- return r;
-
// Call the done callback
r = pakfire_xfer_done(xfer, self->loop, msg->data.result);
if (r < 0) {