From 8b3eaaebf2a61360e730fd99c9286e12bc5743da Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Wed, 29 Jan 2014 10:03:39 +0100 Subject: [PATCH] Fix thinko in windows EFS support. --- src/filed/restore.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/filed/restore.c b/src/filed/restore.c index 0a7a0fd937c..0c0a4c7a2f2 100644 --- a/src/filed/restore.c +++ b/src/filed/restore.c @@ -1178,6 +1178,7 @@ bool store_data(JCR *jcr, BFILE *bfd, char *data, const int32_t length, bool win if (jcr->crypto.digest) { crypto_digest_update(jcr->crypto.digest, (uint8_t *)data, length); } + if (win32_decomp) { if (!processWin32BackupAPIBlock(bfd, data, length)) { berrno be; @@ -1186,22 +1187,28 @@ bool store_data(JCR *jcr, BFILE *bfd, char *data, const int32_t length, bool win return false; } #ifdef HAVE_WIN32 - } else if (!bfd->encrypted && bwrite(bfd, data, length) != (ssize_t)length) { + } else { + if (bfd->encrypted) { + if (win32_send_to_copy_thread(jcr, bfd, data, length) != (ssize_t)length) { + berrno be; + Jmsg2(jcr, M_ERROR, 0, _("Write error on %s: %s\n"), + jcr->last_fname, be.bstrerror(bfd->berrno)); + return false; + } + } else { + if (bwrite(bfd, data, length) != (ssize_t)length) { + berrno be; + Jmsg2(jcr, M_ERROR, 0, _("Write error on %s: %s\n"), + jcr->last_fname, be.bstrerror(bfd->berrno)); + } + } + } #else } else if (bwrite(bfd, data, length) != (ssize_t)length) { -#endif berrno be; Jmsg2(jcr, M_ERROR, 0, _("Write error on %s: %s\n"), jcr->last_fname, be.bstrerror(bfd->berrno)); return false; -#ifdef HAVE_WIN32 - } else if (win32_send_to_copy_thread(jcr, bfd, data, length) != (ssize_t)length) { - berrno be; - Jmsg2(jcr, M_ERROR, 0, _("Write error on %s: %s\n"), - jcr->last_fname, be.bstrerror(bfd->berrno)); - return false; - } -#else } #endif