X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fupload.c;h=2c429694748167852f0a0a42b56bbe3abc308a99;hb=16da7589e91b0030fb5564553447f80b97c0b18c;hp=e28bf961c78add1cd5f47f6d2ee7c83c47bf3cf0;hpb=8022d46e5e2d9c3ab664ace6c9f185976e34dc20;p=libguestfs.git diff --git a/daemon/upload.c b/daemon/upload.c index e28bf96..2c42969 100644 --- a/daemon/upload.c +++ b/daemon/upload.c @@ -70,7 +70,7 @@ upload (const char *filename, int flags, int64_t offset) err = errno; r = cancel_receive (); errno = err; - if (r != -2) reply_with_perror ("%s", filename); + reply_with_perror ("%s", filename); return -1; } @@ -79,7 +79,7 @@ upload (const char *filename, int flags, int64_t offset) err = errno; r = cancel_receive (); errno = err; - if (r != -2) reply_with_perror ("lseek: %s", filename); + reply_with_perror ("lseek: %s", filename); return -1; } } @@ -89,13 +89,16 @@ upload (const char *filename, int flags, int64_t offset) err = errno; r = cancel_receive (); errno = err; - if (r != -2) reply_with_error ("write error: %s", filename); + reply_with_error ("write error: %s", filename); close (data.fd); return -1; } if (r == -2) { /* cancellation from library */ + /* This error is ignored by the library since it initiated the + * cancel. Nevertheless we must send an error reply here. + */ + reply_with_error ("file upload cancelled"); close (data.fd); - /* Do NOT send any error. */ return -1; } @@ -104,8 +107,7 @@ upload (const char *filename, int flags, int64_t offset) if (r == -1) /* if r == 0, file transfer ended already */ r = cancel_receive (); errno = err; - if (r != -2) - reply_with_perror ("close: %s", filename); + reply_with_perror ("close: %s", filename); return -1; }