[Box Backup-commit] COMMIT r1274 - box/chris/merge/lib/backupclient
boxbackup-dev@fluffy.co.uk
boxbackup-dev@fluffy.co.uk
Fri, 09 Feb 2007 22:35:56 +0000
Author: chris
Date: 2007-02-09 22:35:56 +0000 (Fri, 09 Feb 2007)
New Revision: 1274
Modified:
box/chris/merge/lib/backupclient/BackupClientRestore.cpp
Log:
Make BackupClientRestoreDir return a result code compatible with
BackupClientRestore (refs #3)
Modified: box/chris/merge/lib/backupclient/BackupClientRestore.cpp
===================================================================
--- box/chris/merge/lib/backupclient/BackupClientRestore.cpp 2007-02-09 22:34:21 UTC (rev 1273)
+++ box/chris/merge/lib/backupclient/BackupClientRestore.cpp 2007-02-09 22:35:56 UTC (rev 1274)
@@ -207,7 +207,7 @@
// Created: 23/11/03
//
// --------------------------------------------------------------------------
-static void BackupClientRestoreDir(BackupProtocolClient &rConnection, int64_t DirectoryID, std::string &rLocalDirectoryName,
+static int BackupClientRestoreDir(BackupProtocolClient &rConnection, int64_t DirectoryID, std::string &rLocalDirectoryName,
RestoreParams &Params, RestoreResumeInfo &rLevel)
{
// If we're resuming... check that we haven't got a next level to look at
@@ -478,7 +478,14 @@
RestoreResumeInfo &rnextLevel(rLevel.AddLevel(en->GetObjectID(), nm.GetClearFilename()));
// Recurse
- BackupClientRestoreDir(rConnection, en->GetObjectID(), localDirname, Params, rnextLevel);
+ int result = BackupClientRestoreDir(
+ rConnection, en->GetObjectID(),
+ localDirname, Params, rnextLevel);
+
+ if (result != Restore_Complete)
+ {
+ return result;
+ }
// Remove the level for the above call
rLevel.RemoveLevel();
@@ -487,7 +494,9 @@
rLevel.mRestoredObjects.insert(en->GetObjectID());
}
}
- }
+ }
+
+ return Restore_Complete;
}
@@ -558,7 +567,12 @@
// Restore the directory
std::string localName(LocalDirectoryName);
- BackupClientRestoreDir(rConnection, DirectoryID, localName, params, params.mResumeInfo);
+ int result = BackupClientRestoreDir(rConnection, DirectoryID,
+ localName, params, params.mResumeInfo);
+ if (result != Restore_Complete)
+ {
+ return result;
+ }
// Undelete the directory on the server?
if(RestoreDeleted && UndeleteAfterRestoreDeleted)