From: Mikel Astiz <redacted>
If a get operation fails, the file has not been written completely and
thus should be deleted.
---
client/transfer.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/client/transfer.c b/client/transfer.c
index 254326e..1d00339 100644
--- a/client/transfer.c
+++ b/client/transfer.c
@@ -181,6 +181,18 @@ static void transfer_notify_error(struct obc_transfer *transfer, GError *err)
{
struct transfer_callback *callback = transfer->callback;
+ if ((transfer->direction == OBC_TRANSFER_GET) &&
+ (transfer->file_location != NULL)) {
+ struct file_location *location = transfer->file_location;
+
+ if (location->fd > 0) {
+ close(location->fd);
+ location->fd = 0;
+ }
+
+ unlink(location->filename);
+ }
+
if (callback != NULL) {
transfer->callback = NULL;
callback->func(transfer, transfer->transferred, err,--
1.7.7.6