Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
CTX_DEBUG(xfer->ctx, "Xfer failed\n");
- // Get file descriptor
- int fd = fileno(xfer->fin);
+ // Throw away any downloaded data
+ if (xfer->fin) {
+ // Get file descriptor
+ int fd = fileno(xfer->fin);
- // Truncate downloaded data
- r = ftruncate(fd, 0);
- if (r)
- return r;
+ // Truncate downloaded data
+ if (fd >= 0) {
+ r = ftruncate(fd, 0);
+ if (r)
+ return r;
+ }
+
+ // Rewind
+ rewind(xfer->fin);
+ }
// Did we use a mirror?
if (xfer->mirror) {