[Box Backup-commit] COMMIT r2158 - box/trunk/bin/bbackupquery
boxbackup-dev at fluffy.co.uk
boxbackup-dev at fluffy.co.uk
Mon May 5 22:04:34 BST 2008
Author: chris
Date: 2008-05-05 22:04:33 +0100 (Mon, 05 May 2008)
New Revision: 2158
Modified:
box/trunk/bin/bbackupquery/BackupQueries.cpp
Log:
Catch server errors when listing a directory.
Modified: box/trunk/bin/bbackupquery/BackupQueries.cpp
===================================================================
--- box/trunk/bin/bbackupquery/BackupQueries.cpp 2008-05-05 14:44:38 UTC (rev 2157)
+++ box/trunk/bin/bbackupquery/BackupQueries.cpp 2008-05-05 21:04:33 UTC (rev 2158)
@@ -410,6 +410,7 @@
{
BOX_ERROR("Directory '" << args[0] << "' not found "
"on store.");
+ SetReturnCode(COMMAND_RETURN_ERROR);
return;
}
}
@@ -435,12 +436,29 @@
if(!opts[LIST_OPTION_ALLOWDELETED]) excludeFlags |= BackupProtocolClientListDirectory::Flags_Deleted;
// Do communication
- mrConnection.QueryListDirectory(
- DirID,
- BackupProtocolClientListDirectory::Flags_INCLUDE_EVERYTHING, // both files and directories
- excludeFlags,
- true /* want attributes */);
+ try
+ {
+ mrConnection.QueryListDirectory(
+ DirID,
+ BackupProtocolClientListDirectory::Flags_INCLUDE_EVERYTHING,
+ // both files and directories
+ excludeFlags,
+ true /* want attributes */);
+ }
+ catch (std::exception &e)
+ {
+ BOX_ERROR("Failed to list directory: " << e.what());
+ SetReturnCode(COMMAND_RETURN_ERROR);
+ return;
+ }
+ catch (...)
+ {
+ BOX_ERROR("Failed to list directory: unknown error");
+ SetReturnCode(COMMAND_RETURN_ERROR);
+ return;
+ }
+
// Retrieve the directory from the stream following
BackupStoreDirectory dir;
std::auto_ptr<IOStream> dirstream(mrConnection.ReceiveStream());
@@ -755,6 +773,7 @@
if(args.size() != 1 || args[0].size() == 0)
{
BOX_ERROR("Incorrect usage. cd [-o] [-d] <directory>");
+ SetReturnCode(COMMAND_RETURN_ERROR);
return;
}
@@ -772,6 +791,7 @@
if(id == 0)
{
BOX_ERROR("Directory '" << args[0] << "' not found.");
+ SetReturnCode(COMMAND_RETURN_ERROR);
return;
}
More information about the Boxbackup-commit
mailing list