summaryrefslogtreecommitdiff
path: root/lib/backupclient/BackupClientRestore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/backupclient/BackupClientRestore.cpp')
-rw-r--r--lib/backupclient/BackupClientRestore.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/lib/backupclient/BackupClientRestore.cpp b/lib/backupclient/BackupClientRestore.cpp
index b1c5cd0f..fa61bb59 100644
--- a/lib/backupclient/BackupClientRestore.cpp
+++ b/lib/backupclient/BackupClientRestore.cpp
@@ -211,7 +211,8 @@ typedef struct
//
// --------------------------------------------------------------------------
static int BackupClientRestoreDir(BackupProtocolClient &rConnection,
- int64_t DirectoryID, std::string &rLocalDirectoryName,
+ int64_t DirectoryID, const std::string &rRemoteDirectoryName,
+ const std::string &rLocalDirectoryName,
RestoreParams &Params, RestoreResumeInfo &rLevel)
{
// If we're resuming... check that we haven't got a next level to
@@ -223,7 +224,9 @@ static int BackupClientRestoreDir(BackupProtocolClient &rConnection,
DIRECTORY_SEPARATOR_ASCHAR +
rLevel.mNextLevelLocalName);
BackupClientRestoreDir(rConnection, rLevel.mNextLevelID,
- localDirname, Params, *rLevel.mpNextLevel);
+ rRemoteDirectoryName + '/' +
+ rLevel.mNextLevelLocalName, localDirname,
+ Params, *rLevel.mpNextLevel);
// Add it to the list of done itmes
rLevel.mRestoredObjects.insert(rLevel.mNextLevelID);
@@ -526,6 +529,11 @@ static int BackupClientRestoreDir(BackupProtocolClient &rConnection,
}
}
+ BOX_TRACE("Restoring file: " <<
+ rRemoteDirectoryName + '/' +
+ nm.GetClearFilename() << " (" <<
+ en->GetSizeInBlocks() << " blocks)");
+
// Request it from the store
rConnection.QueryGetFile(DirectoryID,
en->GetObjectID());
@@ -739,9 +747,16 @@ static int BackupClientRestoreDir(BackupProtocolClient &rConnection,
nm.GetClearFilename()));
// Recurse
+
+ BOX_TRACE("Entering directory: " <<
+ rRemoteDirectoryName + '/' +
+ nm.GetClearFilename());
+
int result = BackupClientRestoreDir(
rConnection, en->GetObjectID(),
- localDirname, Params, rnextLevel);
+ rRemoteDirectoryName + '/' +
+ nm.GetClearFilename(), localDirname,
+ Params, rnextLevel);
if (result != Restore_Complete)
{
@@ -824,8 +839,8 @@ static int BackupClientRestoreDir(BackupProtocolClient &rConnection,
//
// --------------------------------------------------------------------------
int BackupClientRestore(BackupProtocolClient &rConnection,
- int64_t DirectoryID, const char *LocalDirectoryName,
- bool PrintDots, bool RestoreDeleted,
+ int64_t DirectoryID, const char *RemoteDirectoryName,
+ const char *LocalDirectoryName, bool PrintDots, bool RestoreDeleted,
bool UndeleteAfterRestoreDeleted, bool Resume,
bool ContinueAfterErrors)
{
@@ -872,9 +887,9 @@ int BackupClientRestore(BackupProtocolClient &rConnection,
}
// Restore the directory
- std::string localName(LocalDirectoryName);
int result = BackupClientRestoreDir(rConnection, DirectoryID,
- localName, params, params.mResumeInfo);
+ RemoteDirectoryName, LocalDirectoryName, params,
+ params.mResumeInfo);
if (result != Restore_Complete)
{
return result;