[Box Backup-commit] COMMIT r2124 - in box/trunk: . bin/bbackupd bin/bbackupquery bin/bbstoreaccounts bin/bbstored documentation lib/backupclient lib/backupstore lib/common lib/compress lib/crypto lib/intercept lib/raidfile lib/server test/backupdiff test/basicserver test/bbackupd test/bbackupd/testfiles test/common test/compress test/raidfile
boxbackup-dev at fluffy.co.uk
boxbackup-dev at fluffy.co.uk
Fri Apr 4 22:59:30 BST 2008
Author: chris
Date: 2008-04-04 21:59:29 +0000 (Fri, 04 Apr 2008)
New Revision: 2124
Modified:
box/trunk/bin/bbackupd/BackupClientContext.cpp
box/trunk/bin/bbackupd/BackupClientContext.h
box/trunk/bin/bbackupd/BackupClientDirectoryRecord.cpp
box/trunk/bin/bbackupd/BackupDaemon.cpp
box/trunk/bin/bbackupd/Win32ServiceFunctions.cpp
box/trunk/bin/bbackupd/bbackupd-config.in
box/trunk/bin/bbackupquery/BackupQueries.cpp
box/trunk/bin/bbackupquery/bbackupquery.cpp
box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp
box/trunk/bin/bbstored/BBStoreDHousekeeping.cpp
box/trunk/bin/bbstored/BackupContext.cpp
box/trunk/bin/bbstored/bbstored-config.in
box/trunk/configure.ac
box/trunk/documentation/bbackupctl.xml
box/trunk/documentation/bbackupquery.xml
box/trunk/documentation/bbstoreaccounts.xml
box/trunk/documentation/bbstored-certs.xml
box/trunk/documentation/bbstored-config.xml
box/trunk/documentation/raidfile-config.xml
box/trunk/lib/backupclient/BackupClientRestore.cpp
box/trunk/lib/backupclient/BackupDaemonConfigVerify.cpp
box/trunk/lib/backupclient/BackupStoreFileDiff.cpp
box/trunk/lib/backupclient/BackupStoreFilenameClear.cpp
box/trunk/lib/backupclient/BackupStoreObjectDump.cpp
box/trunk/lib/backupstore/BackupStoreCheck.cpp
box/trunk/lib/backupstore/BackupStoreCheck2.cpp
box/trunk/lib/backupstore/BackupStoreCheckData.cpp
box/trunk/lib/backupstore/BackupStoreConfigVerify.cpp
box/trunk/lib/common/Box.h
box/trunk/lib/common/BoxTime.cpp
box/trunk/lib/common/Configuration.cpp
box/trunk/lib/common/Configuration.h
box/trunk/lib/common/DebugMemLeakFinder.cpp
box/trunk/lib/common/EventWatchFilesystemObject.cpp
box/trunk/lib/common/FileStream.cpp
box/trunk/lib/common/FileStream.h
box/trunk/lib/common/Guards.h
box/trunk/lib/common/Logging.h
box/trunk/lib/common/PartialReadStream.cpp
box/trunk/lib/common/Utils.cpp
box/trunk/lib/common/Utils.h
box/trunk/lib/compress/Compress.h
box/trunk/lib/compress/CompressStream.cpp
box/trunk/lib/crypto/CipherContext.cpp
box/trunk/lib/intercept/intercept.cpp
box/trunk/lib/raidfile/RaidFileController.cpp
box/trunk/lib/raidfile/RaidFileWrite.cpp
box/trunk/lib/server/Daemon.cpp
box/trunk/lib/server/Daemon.h
box/trunk/lib/server/ProtocolUncertainStream.cpp
box/trunk/lib/server/ServerControl.h
box/trunk/lib/server/ServerStream.h
box/trunk/lib/server/ServerTLS.h
box/trunk/lib/server/SocketListen.h
box/trunk/lib/server/SocketStream.cpp
box/trunk/test/backupdiff/testbackupdiff.cpp
box/trunk/test/basicserver/testbasicserver.cpp
box/trunk/test/bbackupd/testbbackupd.cpp
box/trunk/test/bbackupd/testfiles/bbackupd-temploc.conf
box/trunk/test/bbackupd/testfiles/bbackupd.conf.in
box/trunk/test/bbackupd/testfiles/bbstored.conf
box/trunk/test/common/testcommon.cpp
box/trunk/test/compress/testcompress.cpp
box/trunk/test/raidfile/testraidfile.cpp
Log:
Tailorization
Import of the upstream sources from
Repository: http://localhost:8000/
Kind: hg
Revision: 7807b7768163f1c2537756abe5416063989cebb1
Original author: tailor at rocio.int.aidworld.org
Date: 2008-03-16 19:44:36+00:00
Modified: box/trunk/bin/bbackupd/BackupClientContext.cpp
===================================================================
--- box/trunk/bin/bbackupd/BackupClientContext.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/BackupClientContext.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -44,7 +44,6 @@
BackupDaemon &rDaemon,
TLSContext &rTLSContext,
const std::string &rHostname,
- int Port,
int32_t AccountNumber,
bool ExtendedLogging,
bool ExtendedLogToFile,
@@ -53,7 +52,6 @@
: mrDaemon(rDaemon),
mrTLSContext(rTLSContext),
mHostname(rHostname),
- mPort(Port),
mAccountNumber(AccountNumber),
mpSocket(0),
mpConnection(0),
@@ -131,8 +129,7 @@
mHostname << "'...");
// Connect!
- mpSocket->Open(mrTLSContext, Socket::TypeINET,
- mHostname.c_str(), mPort);
+ mpSocket->Open(mrTLSContext, Socket::TypeINET, mHostname.c_str(), BOX_PORT_BBSTORED);
// And create a procotol object
mpConnection = new BackupProtocolClient(*mpSocket);
@@ -149,8 +146,8 @@
if (!mpExtendedLogFileHandle)
{
- BOX_LOG_SYS_ERROR("Failed to open extended "
- "log file: " << mExtendedLogFile);
+ BOX_ERROR("Failed to open extended log "
+ "file: " << strerror(errno));
}
else
{
Modified: box/trunk/bin/bbackupd/BackupClientContext.h
===================================================================
--- box/trunk/bin/bbackupd/BackupClientContext.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/BackupClientContext.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -41,7 +41,6 @@
BackupDaemon &rDaemon,
TLSContext &rTLSContext,
const std::string &rHostname,
- int32_t Port,
int32_t AccountNumber,
bool ExtendedLogging,
bool ExtendedLogToFile,
@@ -202,7 +201,6 @@
BackupDaemon &mrDaemon;
TLSContext &mrTLSContext;
std::string mHostname;
- int mPort;
int32_t mAccountNumber;
SocketStreamTLS *mpSocket;
BackupProtocolClient *mpConnection;
Modified: box/trunk/bin/bbackupd/BackupClientDirectoryRecord.cpp
===================================================================
--- box/trunk/bin/bbackupd/BackupClientDirectoryRecord.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/BackupClientDirectoryRecord.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -1014,8 +1014,7 @@
// Delete the pending entries, if the map is entry
if(mpPendingEntries != 0 && mpPendingEntries->size() == 0)
{
- BOX_TRACE("Deleting mpPendingEntries from dir ID " <<
- BOX_FORMAT_OBJECTID(mObjectID));
+ TRACE1("Deleting mpPendingEntries from dir ID %lld\n", mObjectID);
delete mpPendingEntries;
mpPendingEntries = 0;
}
@@ -1250,8 +1249,8 @@
rLocalPath,
dirname.GetClearFilename());
- BOX_TRACE("Deleted directory record "
- "for " << name);
+ TRACE1("Deleted directory record for "
+ "%s\n", name.c_str());
}
}
}
Modified: box/trunk/bin/bbackupd/BackupDaemon.cpp
===================================================================
--- box/trunk/bin/bbackupd/BackupDaemon.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/BackupDaemon.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -958,7 +958,6 @@
*this,
tlsContext,
conf.GetKeyValue("StoreHostname"),
- conf.GetKeyValueInt("StorePort"),
conf.GetKeyValueInt("AccountNumber"),
conf.GetKeyValueBool("ExtendedLogging"),
conf.KeyExists("ExtendedLogFile"),
@@ -1813,9 +1812,10 @@
if(::statfs(apLoc->mPath.c_str(), &s) != 0)
#endif // HAVE_STRUCT_STATVFS_F_MNTONNAME
{
- BOX_LOG_SYS_WARNING("Failed to stat location "
+ BOX_WARNING("Failed to stat location "
"path '" << apLoc->mPath <<
- "', skipping location '" <<
+ "' (" << strerror(errno) <<
+ "), skipping location '" <<
apLoc->mName << "'");
continue;
}
@@ -2189,8 +2189,9 @@
#endif
if(::rename(newmap.c_str(), target.c_str()) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to rename ID map: " <<
- newmap << " to " << target);
+ BOX_ERROR("failed to rename ID map: " << newmap
+ << " to " << target << ": "
+ << strerror(errno));
THROW_EXCEPTION(CommonException, OSFileError)
}
}
@@ -3054,10 +3055,9 @@
// Check to see if the file exists
if(!FileExists(storeObjectInfoFile.c_str()))
{
- // File doesn't exist -- so can't be deleted. But something
- // isn't quite right, so log a message
- BOX_WARNING("StoreObjectInfoFile did not exist when it "
- "was supposed to: " << storeObjectInfoFile);
+ // File doesn't exist -- so can't be deleted. But something isn't quite right, so log a message
+ BOX_WARNING("Store object info file did not exist when it "
+ "was supposed to. (" << storeObjectInfoFile << ")");
// Return true to stop things going around in a loop
return true;
@@ -3066,8 +3066,8 @@
// Actually delete it
if(::unlink(storeObjectInfoFile.c_str()) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to delete the old "
- "StoreObjectInfoFile: " << storeObjectInfoFile);
+ BOX_ERROR("Failed to delete the old store object info file: "
+ << storeObjectInfoFile << ": "<< strerror(errno));
return false;
}
Modified: box/trunk/bin/bbackupd/Win32ServiceFunctions.cpp
===================================================================
--- box/trunk/bin/bbackupd/Win32ServiceFunctions.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/Win32ServiceFunctions.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -207,8 +207,8 @@
if (emu_stat(pConfigFileName, &st) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to open configuration file "
- "'" << pConfigFileName << "'");
+ BOX_ERROR("Failed to open configuration file '" <<
+ pConfigFileName << "': " << strerror(errno));
return 1;
}
@@ -221,7 +221,7 @@
}
}
- SC_HANDLE scm = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
+ SC_HANDLE scm = OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
if (!scm)
{
Modified: box/trunk/bin/bbackupd/bbackupd-config.in
===================================================================
--- box/trunk/bin/bbackupd/bbackupd-config.in 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupd/bbackupd-config.in 2008-04-04 21:59:29 UTC (rev 2124)
@@ -26,7 +26,7 @@
explicitly, using bbackupctl sync
account-num (hexdecimal) and server-hostname
are supplied by the server administrator
- working-dir is usually @localstatedir_expanded@/bbackupd
+ working-dir is usually @localstatedir_expanded@
backup directories is list of directories to back up
__E
Modified: box/trunk/bin/bbackupquery/BackupQueries.cpp
===================================================================
--- box/trunk/bin/bbackupquery/BackupQueries.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupquery/BackupQueries.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -27,8 +27,6 @@
#include <set>
#include <limits>
-#include <iostream>
-#include <ostream>
#include "BackupQueries.h"
#include "Utils.h"
@@ -812,8 +810,8 @@
}
else
{
- BOX_LOG_SYS_ERROR("Failed to change to directory "
- "'" << args[0] << "'");
+ BOX_ERROR("Error changing to directory '" <<
+ args[0] << ": " << strerror(errno));
}
SetReturnCode(COMMAND_RETURN_ERROR);
@@ -824,7 +822,8 @@
char wd[PATH_MAX];
if(::getcwd(wd, PATH_MAX) == 0)
{
- BOX_LOG_SYS_ERROR("Error getting current directory");
+ BOX_ERROR("Error getting current directory: " <<
+ strerror(errno));
SetReturnCode(COMMAND_RETURN_ERROR);
return;
}
@@ -1400,8 +1399,9 @@
}
else
{
- BOX_LOG_SYS_WARNING("Failed to access local directory "
- "'" << localDirDisplay << "'");
+ BOX_WARNING("Failed to access local directory '" <<
+ localDirDisplay << ": " << strerror(errno) <<
+ "'.");
rParams.mUncheckedFiles ++;
}
return;
@@ -1449,8 +1449,8 @@
DIR *dirhandle = ::opendir(rLocalDir.c_str());
if(dirhandle == 0)
{
- BOX_LOG_SYS_WARNING("Failed to open local directory '" <<
- localDirDisplay << "'");
+ BOX_WARNING("Failed to open local directory '" <<
+ localDirDisplay << "': " << strerror(errno));
rParams.mUncheckedFiles ++;
return;
}
@@ -1518,8 +1518,8 @@
// Close directory
if(::closedir(dirhandle) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to close local directory "
- "'" << localDirDisplay << "'");
+ BOX_ERROR("Failed to close local directory '" <<
+ localDirDisplay << "': " << strerror(errno));
}
dirhandle = 0;
@@ -2158,9 +2158,22 @@
// --------------------------------------------------------------------------
void BackupQueries::CommandUsageDisplayEntry(const char *Name, int64_t Size, int64_t HardLimit, int32_t BlockSize)
{
- std::cout << FormatUsageLineStart(Name) <<
- FormatUsageBar(Size, Size * BlockSize, HardLimit * BlockSize) <<
- std::endl;
+ // Calculate size in Mb
+ double mb = (((double)Size) * ((double)BlockSize)) / ((double)(1024*1024));
+ int64_t percent = (Size * 100) / HardLimit;
+
+ // Bar graph
+ char bar[41];
+ unsigned int b = (int)((Size * (sizeof(bar)-1)) / HardLimit);
+ if(b > sizeof(bar)-1) {b = sizeof(bar)-1;}
+ for(unsigned int l = 0; l < b; l++)
+ {
+ bar[l] = '*';
+ }
+ bar[b] = '\0';
+
+ // Print the entryj
+ ::printf("%14s %10.1fMb %3d%% %s\n", Name, mb, (int32_t)percent, bar);
}
Modified: box/trunk/bin/bbackupquery/bbackupquery.cpp
===================================================================
--- box/trunk/bin/bbackupquery/bbackupquery.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbackupquery/bbackupquery.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -174,8 +174,8 @@
logFile = ::fopen(optarg, "w");
if(logFile == 0)
{
- BOX_LOG_SYS_ERROR("Failed to open log file "
- "'" << optarg << "'");
+ BOX_ERROR("Failed to open log file '" <<
+ optarg << "': " << strerror(errno));
}
break;
@@ -260,9 +260,7 @@
// 2. Connect to server
if(!quiet) BOX_INFO("Connecting to store...");
SocketStreamTLS socket;
- socket.Open(tlsContext, Socket::TypeINET,
- conf.GetKeyValue("StoreHostname").c_str(),
- conf.GetKeyValueInt("StorePort"));
+ socket.Open(tlsContext, Socket::TypeINET, conf.GetKeyValue("StoreHostname").c_str(), BOX_PORT_BBSTORED);
// 3. Make a protocol, and handshake
if(!quiet) BOX_INFO("Handshake with store...");
Modified: box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp
===================================================================
--- box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbstoreaccounts/bbstoreaccounts.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -13,11 +13,8 @@
#include <stdio.h>
#include <sys/types.h>
#include <limits.h>
-
-#include <algorithm>
-#include <iostream>
-#include <ostream>
#include <vector>
+#include <algorithm>
#include "BoxPortsAndFiles.h"
#include "BackupStoreConfigVerify.h"
@@ -65,10 +62,22 @@
return controller.GetDiscSet(DiscSet).GetBlockSize();
}
-std::string BlockSizeToString(int64_t Blocks, int64_t MaxBlocks, int DiscSet)
+const char *BlockSizeToString(int64_t Blocks, int DiscSet)
{
- return FormatUsageBar(Blocks, Blocks * BlockSizeOfDiscSet(DiscSet),
- MaxBlocks * BlockSizeOfDiscSet(DiscSet));
+ // Not reentrant, nor can be used in the same function call twice, etc.
+ static char string[256];
+
+ // Work out size in Mb.
+ double mb = (Blocks * BlockSizeOfDiscSet(DiscSet)) / (1024.0*1024.0);
+
+ // Format string
+#ifdef WIN32
+ sprintf(string, "%I64d (%.2fMb)", Blocks, mb);
+#else
+ sprintf(string, "%lld (%.2fMb)", Blocks, mb);
+#endif
+
+ return string;
}
int64_t SizeStringToBlocks(const char *string, int DiscSet)
@@ -220,30 +229,15 @@
std::auto_ptr<BackupStoreInfo> info(BackupStoreInfo::Load(ID, rootDir, discSet, true /* ReadOnly */));
// Then print out lots of info
- std::cout << FormatUsageLineStart("Account ID") <<
- BOX_FORMAT_ACCOUNT(ID) << std::endl;
- std::cout << FormatUsageLineStart("Last object ID") <<
- BOX_FORMAT_OBJECTID(info->GetLastObjectIDUsed()) << std::endl;
- std::cout << FormatUsageLineStart("Used") <<
- BlockSizeToString(info->GetBlocksUsed(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Old files") <<
- BlockSizeToString(info->GetBlocksInOldFiles(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Deleted files") <<
- BlockSizeToString(info->GetBlocksInDeletedFiles(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Directories") <<
- BlockSizeToString(info->GetBlocksInDirectories(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Soft limit") <<
- BlockSizeToString(info->GetBlocksSoftLimit(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Hard limit") <<
- BlockSizeToString(info->GetBlocksHardLimit(),
- info->GetBlocksHardLimit(), discSet) << std::endl;
- std::cout << FormatUsageLineStart("Client store marker") <<
- info->GetLastObjectIDUsed() << std::endl;
+ printf(" Account ID: %08x\n", ID);
+ printf(" Last object ID: %lld\n", info->GetLastObjectIDUsed());
+ printf(" Blocks used: %s\n", BlockSizeToString(info->GetBlocksUsed(), discSet));
+ printf(" Blocks used by old files: %s\n", BlockSizeToString(info->GetBlocksInOldFiles(), discSet));
+ printf("Blocks used by deleted files: %s\n", BlockSizeToString(info->GetBlocksInDeletedFiles(), discSet));
+ printf(" Blocks used by directories: %s\n", BlockSizeToString(info->GetBlocksInDirectories(), discSet));
+ printf(" Block soft limit: %s\n", BlockSizeToString(info->GetBlocksSoftLimit(), discSet));
+ printf(" Block hard limit: %s\n", BlockSizeToString(info->GetBlocksHardLimit(), discSet));
+ printf(" Client store marker: %lld\n", info->GetClientStoreMarker());
return 0;
}
Modified: box/trunk/bin/bbstored/BBStoreDHousekeeping.cpp
===================================================================
--- box/trunk/bin/bbstored/BBStoreDHousekeeping.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbstored/BBStoreDHousekeeping.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -193,8 +193,7 @@
std::string line;
if(mInterProcessComms.GetLine(line, false /* no pre-processing */, MaximumWaitTime))
{
- BOX_TRACE("Housekeeping received command '" << line <<
- "' over interprocess comms");
+ TRACE1("Housekeeping received command '%s' over interprocess comms\n", line.c_str());
int account = 0;
Modified: box/trunk/bin/bbstored/BackupContext.cpp
===================================================================
--- box/trunk/bin/bbstored/BackupContext.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbstored/BackupContext.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -382,8 +382,7 @@
// Mark that the store info should be saved as soon as possible
mSaveStoreInfoDelay = 0;
- BOX_WARNING("When allocating object ID, found that " <<
- BOX_FORMAT_OBJECTID(id) << " is already in use");
+ TRACE1("When allocating object ID, found that %lld is already in use\n", id);
}
THROW_EXCEPTION(BackupStoreException, CouldNotFindUnusedIDDuringAllocation)
Modified: box/trunk/bin/bbstored/bbstored-config.in
===================================================================
--- box/trunk/bin/bbstored/bbstored-config.in 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/bin/bbstored/bbstored-config.in 2008-04-04 21:59:29 UTC (rev 2124)
@@ -196,7 +196,7 @@
Server
{
- PidFile = @localstatedir_expanded@/run/bbstored.pid
+ PidFile = @localstatedir_expanded@/bbstored.pid
User = $username
ListenAddresses = inet:$server
CertificateFile = $certificate
Modified: box/trunk/configure.ac
===================================================================
--- box/trunk/configure.ac 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/configure.ac 2008-04-04 21:59:29 UTC (rev 2124)
@@ -6,6 +6,10 @@
AC_CONFIG_SRCDIR([lib/common/Box.h])
AC_CONFIG_HEADERS([lib/common/BoxConfig.h])
+# override default sysconfdir, for backwards compatibility
+test "$sysconfdir" = NONE && sysconfdir=/etc
+test "$localstatedir" = NONE && localstatedir=/var/run
+
touch install-sh
AC_CANONICAL_SYSTEM
test -s install-sh || rm install-sh
@@ -58,6 +62,7 @@
;;
esac
+AC_CHECK_HEADER([zlib.h],, [AC_MSG_ERROR([[cannot find zlib.h]])])
AC_CHECK_LIB([z], [zlibVersion],, [AC_MSG_ERROR([[cannot find zlib]])])
VL_LIB_READLINE([have_libreadline=yes], [have_libreadline=no])
@@ -269,10 +274,6 @@
LIBS="-Wl,-Bstatic $LIBS -Wl,-Bdynamic"
fi
-# override default sysconfdir, for backwards compatibility
-test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
-test "$localstatedir" = '${prefix}/var' && localstatedir=/var
-
## Kludge to allow makeparcels.pl to use bindir. This is not a good long term
## solution because it prevents use of "make exec_prefix=/some/dir"
saved_prefix=$prefix
Modified: box/trunk/documentation/bbackupctl.xml
===================================================================
--- box/trunk/documentation/bbackupctl.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/bbackupctl.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>bbackupctl</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -23,7 +23,7 @@
<para><literal>bbackupctl</literal> lets the user control the bbackupd
daemon on a client machine. The main use is to force a sync with the store
- server. This is especially important if bbackupd(8) is configured to do
+ server. This is especially important if bbackupd(1) is configured to do
snapshot backups. In that case <literal>bbackupctl</literal> is the only
way to effect a backup.</para>
@@ -31,7 +31,7 @@
socket. Some platforms (notably Windows) can't determine if the user
connecting on this socket has the correct credentials to execute the
commands, leaving a rather sizeable security hole open. To avoid this,
- unset the CommandSocket parameter in <literal>bbackupd.conf</literal>(5).
+ unset the CommandSocket parameter in <literal>bbackupd.conf</literal>(8).
That disables the command socket, so bbackupd is secure. This does,
however, render bbackupctl unusable.</para>
@@ -93,9 +93,9 @@
<refsection>
<title>See Also</title>
- <para><literal>bbackupd.conf(5)</literal></para>
+ <para><literal>bbackupd.conf(8)</literal></para>
- <para><literal>bbackupd(8)</literal></para>
+ <para>bbackupd(1)</para>
</refsection>
<refsection>
Modified: box/trunk/documentation/bbackupquery.xml
===================================================================
--- box/trunk/documentation/bbackupquery.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/bbackupquery.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>bbackupquery</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -39,7 +39,7 @@
<programlisting>bbackupquery "list home-dirs" quit</programlisting>
<para>Note that commands that contain spaces are enclosed in double
- quotes. If the <literal>quit</literal> command is omitted, after the
+ quotes. If the <literal>quit</literal> command is ommitted, after the
preceding commands are completed, <literal>bbackupquery</literal> will
enter interactive mode.</para>
@@ -328,7 +328,7 @@
<refsection>
<title>See Also</title>
- <para>bbackupd.conf(5)</para>
+ <para>bbackupd.conf(8)</para>
</refsection>
<refsection>
@@ -357,7 +357,7 @@
</listitem>
<listitem>
- <para>The platform you are running on (hardware and OS), for both
+ <para>The platform you are running on (Hardware and OS), for both
client and server.</para>
</listitem>
Modified: box/trunk/documentation/bbstoreaccounts.xml
===================================================================
--- box/trunk/documentation/bbstoreaccounts.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/bbstoreaccounts.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>bbstoreaccounts</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -28,7 +28,7 @@
accounts, as well as create, change and delete accounts on the store
server. </para>
- <para><literal>bbstoreaccounts</literal> always takes at least 2
+ <para><literal>bbstoreaccounts</literal> alwas takes at least 2
parameters: the command name and the account ID. Some commands require
additional parameters, and some commands have optional parameters.</para>
@@ -160,7 +160,7 @@
<listitem>
<para>Blocks used by deleted files: The number of blocks used by
- files that have been deleted on the client. This data is at
+ files that have been deleted on the client. Thi s data is at
risk for being removed during housekeeping.</para>
</listitem>
@@ -267,7 +267,7 @@
</listitem>
<listitem>
- <para>The platform you are running on (hardware and OS), for both
+ <para>The platform you are running on (Hardware and OS), for both
client and server.</para>
</listitem>
Modified: box/trunk/documentation/bbstored-certs.xml
===================================================================
--- box/trunk/documentation/bbstored-certs.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/bbstored-certs.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>bbstored-certs</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -51,7 +51,7 @@
<listitem>
<para><literal>sign <clientcsrfile></literal>: Sign a client
certificate. The <literal>clientcsrfile</literal> is generated
- during client setup. See <literal>bbackupd-config(8)</literal>. Send
+ during client setup. See <literal>bbackupd-config(1)</literal>. Send
the signed certificate back to the client, and install according to
the instructions given by <literal>bbackupd-config</literal>.</para>
</listitem>
@@ -72,11 +72,11 @@
<refsection>
<title>See Also</title>
- <para><literal>bbstored-config(8)</literal></para>
+ <para><literal>bbstored-config(1)</literal></para>
<para><literal>bbstored.conf(5)</literal></para>
- <para><literal>bbstoreaccounts(8)</literal></para>
+ <para><literal>bbstoreaccounts(1)</literal></para>
</refsection>
<refsection>
@@ -102,7 +102,7 @@
</listitem>
<listitem>
- <para>The platform you are running on (hardware and OS), for both
+ <para>The platform you are running on (Hardware and OS), for both
client and server.</para>
</listitem>
Modified: box/trunk/documentation/bbstored-config.xml
===================================================================
--- box/trunk/documentation/bbstored-config.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/bbstored-config.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>bbstored-config</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -86,7 +86,7 @@
<refsection>
<title>See Also</title>
- <para><literal>raidfile-config(8)</literal></para>
+ <para><literal>raidfile-config(1)</literal></para>
<para><literal>bbstored.conf(5)</literal></para>
@@ -117,7 +117,7 @@
</listitem>
<listitem>
- <para>The platform you are running on (hardware and OS), for both
+ <para>The platform you are running on (Hardware and OS), for both
client and server.</para>
</listitem>
Modified: box/trunk/documentation/raidfile-config.xml
===================================================================
--- box/trunk/documentation/raidfile-config.xml 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/documentation/raidfile-config.xml 2008-04-04 21:59:29 UTC (rev 2124)
@@ -3,7 +3,7 @@
<refmeta>
<refentrytitle>raidfile-config</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
@@ -45,7 +45,7 @@
<listitem>
<para><literal>blocksize</literal>: The block size used for file
- storage in the system, in bytes. Using a multiple of the file system
+ storage in the system, in bytes. Using a multple of the file system
block size is a good strategy. Depending on the size of the files
you will be backing up, this multiple varies. Of course it also
depends on the native block size of your file system.</para>
@@ -90,7 +90,7 @@
<refsection>
<title>See Also</title>
- <para><literal>bbstored-config(8)</literal></para>
+ <para><literal>bbstored-config(1)</literal></para>
<para><literal>bbstored.conf(5)</literal></para>
@@ -120,7 +120,7 @@
</listitem>
<listitem>
- <para>The platform you are running on (hardware and OS), for both
+ <para>The platform you are running on (Hardware and OS), for both
client and server.</para>
</listitem>
Modified: box/trunk/lib/backupclient/BackupClientRestore.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupClientRestore.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupclient/BackupClientRestore.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -267,14 +267,14 @@
"restore this object.");
if(::unlink(rLocalDirectoryName.c_str()) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to delete "
- "file '" <<
- rLocalDirectoryName << "'");
+ BOX_ERROR("Failed to delete file " <<
+ rLocalDirectoryName << ": " <<
+ strerror(errno));
return Restore_UnknownError;
}
BOX_TRACE("In restore, directory name "
- "collision with file '" <<
- rLocalDirectoryName << "'");
+ "collision with file " <<
+ rLocalDirectoryName);
}
break;
case ObjectExists_NoObject:
@@ -378,8 +378,9 @@
exists == ObjectExists_File) &&
::mkdir(rLocalDirectoryName.c_str(), S_IRWXU) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to create directory '" <<
- rLocalDirectoryName << "'");
+ BOX_ERROR("Failed to create directory '" <<
+ rLocalDirectoryName << "': " <<
+ strerror(errno));
return Restore_UnknownError;
}
@@ -450,9 +451,7 @@
{
// Local name
BackupStoreFilenameClear nm(en->GetName());
- std::string localFilename(rLocalDirectoryName +
- DIRECTORY_SEPARATOR_ASCHAR +
- nm.GetClearFilename());
+ std::string localFilename(rLocalDirectoryName + DIRECTORY_SEPARATOR_ASCHAR + nm.GetClearFilename());
// Unlink anything which already exists:
// For resuming restores, we can't overwrite
@@ -460,23 +459,20 @@
if(ObjectExists(localFilename) != ObjectExists_NoObject &&
::unlink(localFilename.c_str()) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to delete "
- "file '" << localFilename <<
- "'");
+ BOX_ERROR("Failed to delete file '" <<
+ localFilename << "': " <<
+ strerror(errno));
return Restore_UnknownError;
}
// Request it from the store
- rConnection.QueryGetFile(DirectoryID,
- en->GetObjectID());
+ rConnection.QueryGetFile(DirectoryID, en->GetObjectID());
// Stream containing encoded file
- std::auto_ptr<IOStream> objectStream(
- rConnection.ReceiveStream());
+ std::auto_ptr<IOStream> objectStream(rConnection.ReceiveStream());
- // Decode the file -- need to do different
- // things depending on whether the directory
- // entry has additional attributes
+ // Decode the file -- need to do different things depending on whether
+ // the directory entry has additional attributes
try
{
if(en->HasAttributes())
Modified: box/trunk/lib/backupclient/BackupDaemonConfigVerify.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupDaemonConfigVerify.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupclient/BackupDaemonConfigVerify.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -17,15 +17,15 @@
static const ConfigurationVerifyKey backuplocationkeys[] =
{
- ConfigurationVerifyKey("ExcludeFile", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("ExcludeFilesRegex", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("ExcludeDir", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("ExcludeDirsRegex", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("AlwaysIncludeFile", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("AlwaysIncludeFilesRegex", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("AlwaysIncludeDir", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("AlwaysIncludeDirsRegex", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("Path", ConfigTest_Exists | ConfigTest_LastEntry)
+ {"ExcludeFile", 0, ConfigTest_MultiValueAllowed, 0},
+ {"ExcludeFilesRegex", 0, ConfigTest_MultiValueAllowed, 0},
+ {"ExcludeDir", 0, ConfigTest_MultiValueAllowed, 0},
+ {"ExcludeDirsRegex", 0, ConfigTest_MultiValueAllowed, 0},
+ {"AlwaysIncludeFile", 0, ConfigTest_MultiValueAllowed, 0},
+ {"AlwaysIncludeFilesRegex", 0, ConfigTest_MultiValueAllowed, 0},
+ {"AlwaysIncludeDir", 0, ConfigTest_MultiValueAllowed, 0},
+ {"AlwaysIncludeDirsRegex", 0, ConfigTest_MultiValueAllowed, 0},
+ {"Path", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
static const ConfigurationVerify backuplocations[] =
@@ -64,54 +64,39 @@
static const ConfigurationVerifyKey verifyrootkeys[] =
{
- ConfigurationVerifyKey("AccountNumber",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("UpdateStoreInterval",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("MinimumFileAge",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("MaxUploadWait",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("MaxFileTimeInFuture", ConfigTest_IsInt, 172800),
- // file is uploaded if the file is this much in the future
- // (2 days default)
- ConfigurationVerifyKey("AutomaticBackup", ConfigTest_IsBool, true),
+ {"AccountNumber", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+
+ {"UpdateStoreInterval", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"MinimumFileAge", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"MaxUploadWait", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"MaxFileTimeInFuture", "172800", ConfigTest_IsInt, 0}, // file is uploaded if the file is this much in the future (2 days default)
+
+ {"AutomaticBackup", "yes", ConfigTest_IsBool, 0},
- ConfigurationVerifyKey("SyncAllowScript", 0),
- // script that returns "now" if backup is allowed now, or a number
- // of seconds to wait before trying again if not
+ {"SyncAllowScript", 0, 0, 0}, // optional script to run to see if the sync should be started now
+ // return "now" if it's allowed, or a number of seconds if it's not
- ConfigurationVerifyKey("MaximumDiffingTime", ConfigTest_IsInt),
- ConfigurationVerifyKey("DeleteRedundantLocationsAfter",
- ConfigTest_IsInt, 172800),
+ {"MaximumDiffingTime", 0, ConfigTest_IsInt, 0},
+ {"DeleteRedundantLocationsAfter", "172800", ConfigTest_IsInt, 0},
- ConfigurationVerifyKey("FileTrackingSizeThreshold",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("DiffingUploadSizeThreshold",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("StoreHostname", ConfigTest_Exists),
- ConfigurationVerifyKey("StorePort", ConfigTest_IsInt,
- BOX_PORT_BBSTORED),
- ConfigurationVerifyKey("ExtendedLogging", ConfigTest_IsBool, false),
- // extended log to syslog
- ConfigurationVerifyKey("ExtendedLogFile", 0),
- // extended log to a file
- ConfigurationVerifyKey("LogAllFileAccess", ConfigTest_IsBool, false),
- ConfigurationVerifyKey("CommandSocket", 0),
- // not compulsory to have this
- ConfigurationVerifyKey("KeepAliveTime", ConfigTest_IsInt),
- ConfigurationVerifyKey("StoreObjectInfoFile", 0),
- // optional
+ {"FileTrackingSizeThreshold", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"DiffingUploadSizeThreshold", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"StoreHostname", 0, ConfigTest_Exists, 0},
+ {"ExtendedLogging", "no", ConfigTest_IsBool, 0}, // extended log to syslog
+ {"ExtendedLogFile", NULL, 0, 0}, // extended log to a file
+ {"LogAllFileAccess", "no", ConfigTest_IsBool, 0},
- ConfigurationVerifyKey("NotifyScript", 0),
- // optional script to run when backup needs attention, eg store full
+ {"CommandSocket", 0, 0, 0}, // not compulsory to have this
+ {"KeepAliveTime", 0, ConfigTest_IsInt, 0}, // optional
+ {"StoreObjectInfoFile", 0, 0, 0}, // optional
+
+ {"NotifyScript", 0, 0, 0}, // optional script to run when backup needs attention, eg store full
- ConfigurationVerifyKey("CertificateFile", ConfigTest_Exists),
- ConfigurationVerifyKey("PrivateKeyFile", ConfigTest_Exists),
- ConfigurationVerifyKey("TrustedCAsFile", ConfigTest_Exists),
- ConfigurationVerifyKey("KeysFile", ConfigTest_Exists),
- ConfigurationVerifyKey("DataDirectory",
- ConfigTest_Exists | ConfigTest_LastEntry),
+ {"CertificateFile", 0, ConfigTest_Exists, 0},
+ {"PrivateKeyFile", 0, ConfigTest_Exists, 0},
+ {"TrustedCAsFile", 0, ConfigTest_Exists, 0},
+ {"KeysFile", 0, ConfigTest_Exists, 0},
+ {"DataDirectory", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
const ConfigurationVerify BackupDaemonConfigVerify =
Modified: box/trunk/lib/backupclient/BackupStoreFileDiff.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupStoreFileDiff.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupclient/BackupStoreFileDiff.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -149,7 +149,7 @@
int64_t blocksInIndex = 0;
bool canDiffFromThis = false;
LoadIndex(rDiffFromBlockIndex, DiffFromObjectID, &pindex, blocksInIndex, Timeout, canDiffFromThis);
- // BOX_TRACE("Diff: Blocks in index: " << blocksInIndex);
+ //TRACE1("Diff: Blocks in index: %lld\n", blocksInIndex);
if(!canDiffFromThis)
{
@@ -439,9 +439,7 @@
{
for(int t = 0; t < BACKUP_FILE_DIFF_MAX_BLOCK_SIZES; ++t)
{
- BOX_TRACE("Diff block size " << t << ": " <<
- Sizes[t] << " (count = " <<
- sizeCounts[t] << ")");
+ TRACE3("Diff block size %d: %d (count = %lld)\n", t, Sizes[t], sizeCounts[t]);
}
}
#endif
@@ -776,7 +774,7 @@
// Already present in table?
if(pHashTable[hash] != 0)
{
- //BOX_TRACE("Another hash entry for " << hash << " found");
+ //TRACE1("Another hash entry for %d found\n", hash);
// Yes -- need to set the pointer in this entry to the current entry to build the linked list
pIndex[b].mpNextInHashList = pHashTable[hash];
}
@@ -842,19 +840,17 @@
// Then go through the entries in the hash list, comparing with the strong digest calculated
scan = pFirstInHashList;
- //BOX_TRACE("second stage match");
+ //TRACE0("second stage match\n");
while(scan != 0)
{
- //BOX_TRACE("scan size " << scan->mSize <<
- // ", block size " << BlockSize <<
- // ", hash " << Hash);
+ //TRACE3("scan size %d, block size %d, hash %d\n", scan->mSize, BlockSize, Hash);
ASSERT(scan->mSize == BlockSize);
ASSERT(RollingChecksum::ExtractHashingComponent(scan->mWeakChecksum) == DEBUG_Hash);
// Compare?
if(strong.DigestMatches(scan->mStrongChecksum))
{
- //BOX_TRACE("Match!\n");
+ //TRACE0("Match!\n");
// Found! Add to list of found blocks...
int64_t fileOffset = (FileBlockNumber * BlockSize) + Offset;
int64_t blockIndex = (scan - pIndex); // pointer arthmitic is frowned upon. But most efficient way of doing it here -- alternative is to use more memory
@@ -916,8 +912,7 @@
#ifndef NDEBUG
if(BackupStoreFile::TraceDetailsOfDiffProcess)
{
- BOX_TRACE("Diff: Default recipe generated, " <<
- SizeOfInputFile << " bytes of file");
+ TRACE1("Diff: Default recipe generated, %lld bytes of file\n", SizeOfInputFile);
}
#endif
@@ -1010,14 +1005,10 @@
// dump out the recipe
#ifndef NDEBUG
- BOX_TRACE("Diff: " <<
- debug_NewBytesFound << " new bytes found, " <<
- debug_OldBlocksUsed << " old blocks used");
+ TRACE2("Diff: %lld new bytes found, %lld old blocks used\n", debug_NewBytesFound, debug_OldBlocksUsed);
if(BackupStoreFile::TraceDetailsOfDiffProcess)
{
- BOX_TRACE("Diff: Recipe generated (size " << rRecipe.size());
- BOX_TRACE("======== ========= ========");
- BOX_TRACE("Space b4 FirstBlk NumBlks");
+ TRACE1("Diff: Recipe generated (size %d)\n======== ========= ========\nSpace b4 FirstBlk NumBlks\n", rRecipe.size());
{
for(unsigned int e = 0; e < rRecipe.size(); ++e)
{
@@ -1027,15 +1018,10 @@
#else
sprintf(b, "%8lld", (int64_t)(rRecipe[e].mpStartBlock - pIndex));
#endif
- BOX_TRACE(std::setw(8) <<
- rRecipe[e].mSpaceBefore <<
- " " <<
- ((rRecipe[e].mpStartBlock == 0)?" -":b) <<
- " " << std::setw(8) <<
- rRecipe[e].mBlocks);
+ TRACE3("%8lld %s %8lld\n", rRecipe[e].mSpaceBefore, (rRecipe[e].mpStartBlock == 0)?" -":b, (int64_t)rRecipe[e].mBlocks);
}
}
- BOX_TRACE("======== ========= ========");
+ TRACE0("======== ========= ========\n");
}
#endif
}
Modified: box/trunk/lib/backupclient/BackupStoreFilenameClear.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupStoreFilenameClear.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupclient/BackupStoreFilenameClear.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -167,8 +167,7 @@
switch(encoding)
{
case Encoding_Clear:
- BOX_TRACE("**** BackupStoreFilename encoded with "
- "Clear encoding ****");
+ TRACE0("**** BackupStoreFilename encoded with Clear encoding ****\n");
mClearFilename.assign(c_str() + 2, size - 2);
break;
@@ -194,8 +193,7 @@
if(spEncDecBuffer == 0)
{
#ifndef WIN32
- BOX_TRACE("Allocating filename encoding/decoding buffer "
- "with size " << BufSize);
+ TRACE1("Allocating filename encoding/decoding buffer with size %d\n", BufSize);
#endif
spEncDecBuffer = new MemoryBlockGuard<uint8_t *>(BufSize);
MEMLEAKFINDER_NOT_A_LEAK(spEncDecBuffer);
Modified: box/trunk/lib/backupclient/BackupStoreObjectDump.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupStoreObjectDump.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupclient/BackupStoreObjectDump.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -47,7 +47,7 @@
}
if(ToTrace)
{
- BOX_TRACE(text);
+ TRACE1("%s", text);
}
}
@@ -211,16 +211,14 @@
if(s > 0)
{
nnew++;
- BOX_TRACE(std::setw(8) << b << " this s=" <<
- std::setw(8) << s);
+ TRACE2("%8lld this s=%8lld\n", b, s);
}
else
{
nold++;
- BOX_TRACE(std::setw(8) << b << " other i=" <<
- std::setw(8) << 0 - s);
+ TRACE2("%8lld other i=%8lld\n", b, 0 - s);
}
}
- BOX_TRACE("======== ===== ==========");
+ TRACE0("======== ===== ==========\n");
}
Modified: box/trunk/lib/backupstore/BackupStoreCheck.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupStoreCheck.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupstore/BackupStoreCheck.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -268,8 +268,7 @@
}
maxDir = CheckObjectsScanDir(0, 1, mStoreRoot);
- BOX_TRACE("Max dir starting ID is " <<
- BOX_FORMAT_OBJECTID(maxDir));
+ TRACE1("Max dir starting ID is %llx\n", maxDir);
}
// Then go through and scan all the objects within those directories
Modified: box/trunk/lib/backupstore/BackupStoreCheck2.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupStoreCheck2.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupstore/BackupStoreCheck2.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -594,8 +594,6 @@
}
}
-#define FMT_OID(x) BOX_FORMAT_OBJECTID(x)
-#define FMT_i BOX_FORMAT_OBJECTID((*i)->GetObjectID())
// --------------------------------------------------------------------------
//
@@ -622,11 +620,7 @@
if(newerEn == 0)
{
// Depends on something, but it isn't there.
- BOX_TRACE("Entry id " << FMT_i <<
- " removed because depends "
- "on newer version " <<
- FMT_OID(dependsNewer) <<
- " which doesn't exist");
+ TRACE2("Entry id %llx removed because depends on newer version %llx which doesn't exist\n", (*i)->GetObjectID(), dependsNewer);
// Remove
delete *i;
@@ -644,12 +638,7 @@
if(newerEn->GetDependsOlder() != (*i)->GetObjectID())
{
// Wrong entry
- BOX_TRACE("Entry id " <<
- FMT_OID(dependsNewer) <<
- ", correcting DependsOlder to " <<
- FMT_i <<
- ", was " <<
- FMT_OID(newerEn->GetDependsOlder()));
+ TRACE3("Entry id %llx, correcting DependsOlder to %llx, was %llx\n", dependsNewer, (*i)->GetObjectID(), newerEn->GetDependsOlder());
newerEn->SetDependsOlder((*i)->GetObjectID());
// Mark as changed
changed = true;
@@ -668,11 +657,7 @@
if(dependsOlder != 0 && FindEntryByID(dependsOlder) == 0)
{
// Has an older version marked, but this doesn't exist. Remove this mark
- BOX_TRACE("Entry id " << FMT_i <<
- " was marked as depended on by " <<
- FMT_OID(dependsOlder) << ", "
- "which doesn't exist, dependency "
- "info cleared");
+ TRACE2("Entry id %llx was marked that %llx depended on it, which doesn't exist, dependency info cleared\n", (*i)->GetObjectID(), dependsOlder);
(*i)->SetDependsOlder(0);
@@ -708,7 +693,7 @@
bool removeEntry = false;
if((*i) == 0)
{
- BOX_TRACE("Remove because null pointer found");
+ TRACE0("Remove because null pointer found\n");
removeEntry = true;
}
else
@@ -719,8 +704,7 @@
if(isDir && (((*i)->GetFlags() & Entry::Flags_File) == Entry::Flags_File))
{
// Bad! Unset the file flag
- BOX_TRACE("Entry " << FMT_i <<
- ": File flag and dir flag both set");
+ TRACE1("Entry %llx: File flag set when dir flag set\n", (*i)->GetObjectID());
(*i)->RemoveFlags(Entry::Flags_File);
changed = true;
}
@@ -729,8 +713,7 @@
if(idsEncountered.find((*i)->GetObjectID()) != idsEncountered.end())
{
// ID already seen, or type doesn't match
- BOX_TRACE("Entry " << FMT_i <<
- ": Remove because ID already seen");
+ TRACE1("Entry %llx: Remove because ID already seen\n", (*i)->GetObjectID());
removeEntry = true;
}
else
@@ -747,8 +730,7 @@
&& ((*i)->GetFlags() & Entry::Flags_Deleted) == 0)
{
// Not set, set it
- BOX_TRACE("Entry " << FMT_i <<
- ": Set old flag");
+ TRACE1("Entry %llx: Set old flag\n", (*i)->GetObjectID());
(*i)->AddFlags(Entry::Flags_OldVersion);
changed = true;
}
@@ -759,8 +741,7 @@
if(((*i)->GetFlags() & Entry::Flags_OldVersion) == Entry::Flags_OldVersion)
{
// Set, unset it
- BOX_TRACE("Entry " << FMT_i <<
- ": Old flag unset");
+ TRACE1("Entry %llx: Old flag unset\n", (*i)->GetObjectID());
(*i)->RemoveFlags(Entry::Flags_OldVersion);
changed = true;
}
Modified: box/trunk/lib/backupstore/BackupStoreCheckData.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupStoreCheckData.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupstore/BackupStoreCheckData.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -189,18 +189,15 @@
{
IDBlock *pblock = i->second;
int32_t bentries = (pblock == mpInfoLastBlock)?mInfoLastBlockEntries:BACKUPSTORECHECK_BLOCK_SIZE;
- BOX_TRACE("BLOCK @ " << BOX_FORMAT_HEX32(pblock) <<
- ", " << bentries << " entries");
+ TRACE2("BLOCK @ 0x%08x, %d entries\n", pblock, bentries);
for(int e = 0; e < bentries; ++e)
{
uint8_t flags = GetFlags(pblock, e);
- BOX_TRACE(std::hex <<
- "id " << pblock->mID[e] <<
- ", c " << pblock->mContainer[e] <<
- ", " << ((flags & Flags_IsDir)?"dir":"file") <<
- ", " << ((flags & Flags_IsContained) ?
- "contained":"unattached"));
+ TRACE4("id %llx, c %llx, %s, %s\n",
+ pblock->mID[e], pblock->mContainer[e],
+ (flags & Flags_IsDir)?"dir":"file",
+ (flags & Flags_IsContained)?"contained":"unattached");
}
}
}
Modified: box/trunk/lib/backupstore/BackupStoreConfigVerify.cpp
===================================================================
--- box/trunk/lib/backupstore/BackupStoreConfigVerify.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/backupstore/BackupStoreConfigVerify.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -16,8 +16,7 @@
static const ConfigurationVerifyKey verifyserverkeys[] =
{
- SERVERTLS_VERIFY_SERVER_KEYS(ConfigurationVerifyKey::NoDefaultValue)
- // no default listen addresses
+ SERVERTLS_VERIFY_SERVER_KEYS(0) // no default listen addresses
};
static const ConfigurationVerify verifyserver[] =
@@ -33,18 +32,16 @@
static const ConfigurationVerifyKey verifyrootkeys[] =
{
- ConfigurationVerifyKey("AccountDatabase", ConfigTest_Exists),
- ConfigurationVerifyKey("TimeBetweenHousekeeping",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("ExtendedLogging", ConfigTest_IsBool, false),
- // make value "yes" to enable in config file
+ {"AccountDatabase", 0, ConfigTest_Exists, 0},
+ {"TimeBetweenHousekeeping", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"ExtendedLogging", "no", ConfigTest_IsBool, 0}, // make value "yes" to enable in config file
#ifdef WIN32
- ConfigurationVerifyKey("RaidFileConf", ConfigTest_LastEntry)
+ {"RaidFileConf", "", ConfigTest_LastEntry, 0}
#else
- ConfigurationVerifyKey("RaidFileConf", ConfigTest_LastEntry,
- BOX_FILE_RAIDFILE_DEFAULT_CONFIG)
+ {"RaidFileConf", BOX_FILE_RAIDFILE_DEFAULT_CONFIG, ConfigTest_LastEntry, 0}
#endif
+
};
const ConfigurationVerify BackupConfigFileVerify =
Modified: box/trunk/lib/common/Box.h
===================================================================
--- box/trunk/lib/common/Box.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Box.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -52,6 +52,15 @@
extern bool BoxDebugTraceOn;
int BoxDebug_printf(const char *format, ...);
int BoxDebugTrace(const char *format, ...);
+ #define TRACE0(msg) {BoxDebugTrace("%s", msg);}
+ #define TRACE1(msg, a0) {BoxDebugTrace(msg, a0);}
+ #define TRACE2(msg, a0, a1) {BoxDebugTrace(msg, a0, a1);}
+ #define TRACE3(msg, a0, a1, a2) {BoxDebugTrace(msg, a0, a1, a2);}
+ #define TRACE4(msg, a0, a1, a2, a3) {BoxDebugTrace(msg, a0, a1, a2, a3);}
+ #define TRACE5(msg, a0, a1, a2, a3, a4) {BoxDebugTrace(msg, a0, a1, a2, a3, a4);}
+ #define TRACE6(msg, a0, a1, a2, a3, a4, a5) {BoxDebugTrace(msg, a0, a1, a2, a3, a4, a5);}
+ #define TRACE7(msg, a0, a1, a2, a3, a4, a5, a6) {BoxDebugTrace(msg, a0, a1, a2, a3, a4, a5, a6);}
+ #define TRACE8(msg, a0, a1, a2, a3, a4, a5, a6, a7) {BoxDebugTrace(msg, a0, a1, a2, a3, a4, a5, a6, a7);}
#ifndef PLATFORM_DISABLE_MEM_LEAK_TESTING
#define BOX_MEMORY_LEAK_TESTING
@@ -67,6 +76,16 @@
#define TRACE_TO_SYSLOG(x) {}
#define TRACE_TO_STDOUT(x) {}
+ #define TRACE0(msg)
+ #define TRACE1(msg, a0)
+ #define TRACE2(msg, a0, a1)
+ #define TRACE3(msg, a0, a1, a2)
+ #define TRACE4(msg, a0, a1, a2, a3)
+ #define TRACE5(msg, a0, a1, a2, a3, a4)
+ #define TRACE6(msg, a0, a1, a2, a3, a4, a5)
+ #define TRACE7(msg, a0, a1, a2, a3, a4, a5, a6)
+ #define TRACE8(msg, a0, a1, a2, a3, a4, a5, a6, a7)
+
// Box Backup builds release get extra information for exception logging
#define EXCEPTION_CODENAMES_EXTENDED
#define EXCEPTION_CODENAMES_EXTENDED_WITH_DESCRIPTION
Modified: box/trunk/lib/common/BoxTime.cpp
===================================================================
--- box/trunk/lib/common/BoxTime.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/BoxTime.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -39,8 +39,8 @@
struct timeval tv;
if (gettimeofday(&tv, NULL) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to gettimeofday(), "
- "dropping precision");
+ BOX_ERROR("Failed to gettimeofday(), dropping "
+ "precision: " << strerror(errno));
}
else
{
Modified: box/trunk/lib/common/Configuration.cpp
===================================================================
--- box/trunk/lib/common/Configuration.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Configuration.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -12,8 +12,6 @@
#include <stdlib.h>
#include <limits.h>
-#include <sstream>
-
#include "Configuration.h"
#include "CommonException.h"
#include "Guards.h"
@@ -31,106 +29,8 @@
static const char *sValueBooleanStrings[] = {"yes", "true", "no", "false", 0};
static const bool sValueBooleanValue[] = {true, true, false, false};
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- void *testFunction
-)
-: mName(name),
- mHasDefaultValue(false),
- mFlags(flags),
- mTestFunction(testFunction)
-{ }
-// to allow passing NULL for default ListenAddresses
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- NoDefaultValue_t t,
- void *testFunction
-)
-: mName(name),
- mHasDefaultValue(false),
- mFlags(flags),
- mTestFunction(testFunction)
-{ }
-
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- std::string defaultValue,
- void *testFunction
-)
-: mName(name),
- mDefaultValue(defaultValue),
- mHasDefaultValue(true),
- mFlags(flags),
- mTestFunction(testFunction)
-{ }
-
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- const char *defaultValue,
- void *testFunction
-)
-: mName(name),
- mDefaultValue(defaultValue),
- mHasDefaultValue(true),
- mFlags(flags),
- mTestFunction(testFunction)
-{ }
-
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- int defaultValue,
- void *testFunction
-)
-: mName(name),
- mHasDefaultValue(true),
- mFlags(flags),
- mTestFunction(testFunction)
-{
- ASSERT(flags & ConfigTest_IsInt);
- std::ostringstream val;
- val << defaultValue;
- mDefaultValue = val.str();
-}
-
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- std::string name,
- int flags,
- bool defaultValue,
- void *testFunction
-)
-: mName(name),
- mHasDefaultValue(true),
- mFlags(flags),
- mTestFunction(testFunction)
-{
- ASSERT(flags & ConfigTest_IsBool);
- mDefaultValue = defaultValue ? "yes" : "no";
-}
-
-ConfigurationVerifyKey::ConfigurationVerifyKey
-(
- const ConfigurationVerifyKey& rToCopy
-)
-: mName(rToCopy.mName),
- mDefaultValue(rToCopy.mDefaultValue),
- mHasDefaultValue(rToCopy.mHasDefaultValue),
- mFlags(rToCopy.mFlags),
- mTestFunction(rToCopy.mTestFunction)
-{ }
-
// --------------------------------------------------------------------------
//
// Function
@@ -208,8 +108,8 @@
if(!rErrorMsg.empty())
{
// An error occured, return now
- BOX_ERROR("Error in Configuration::LoadInfo: " <<
- rErrorMsg);
+ //TRACE1("Error message from LoadInto: %s", rErrorMsg.c_str());
+ TRACE0("Error at Configuration::LoadInfo\n");
delete pconfig;
pconfig = 0;
return std::auto_ptr<Configuration>(0);
@@ -220,8 +120,8 @@
{
if(!Verify(*pconfig, *pVerify, std::string(), rErrorMsg))
{
- BOX_ERROR("Error verifying configuration: " <<
- rErrorMsg);
+ //TRACE1("Error message from Verify: %s", rErrorMsg.c_str());
+ TRACE0("Error at Configuration::Verify\n");
delete pconfig;
pconfig = 0;
return std::auto_ptr<Configuration>(0);
@@ -289,8 +189,7 @@
}
else
{
- rErrorMsg += "Unexpected start block in " +
- rConfig.mName + "\n";
+ rErrorMsg += "Unexpected start block in " + rConfig.mName + "\n";
}
}
else
@@ -391,32 +290,36 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::KeyExists(const std::string&)
+// Name: Configuration::KeyExists(const char *)
// Purpose: Checks to see if a key exists
// Created: 2003/07/23
//
// --------------------------------------------------------------------------
-bool Configuration::KeyExists(const std::string& rKeyName) const
+bool Configuration::KeyExists(const char *pKeyName) const
{
- return mKeys.find(rKeyName) != mKeys.end();
+ if(pKeyName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
+ return mKeys.find(pKeyName) != mKeys.end();
}
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::GetKeyValue(const std::string&)
+// Name: Configuration::GetKeyValue(const char *)
// Purpose: Returns the value of a configuration variable
// Created: 2003/07/23
//
// --------------------------------------------------------------------------
-const std::string &Configuration::GetKeyValue(const std::string& rKeyName) const
+const std::string &Configuration::GetKeyValue(const char *pKeyName) const
{
- std::map<std::string, std::string>::const_iterator i(mKeys.find(rKeyName));
+ if(pKeyName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
+ std::map<std::string, std::string>::const_iterator i(mKeys.find(pKeyName));
if(i == mKeys.end())
{
- BOX_ERROR("Missing configuration key: " << rKeyName);
+ BOX_ERROR("Missing configuration key: " << pKeyName);
THROW_EXCEPTION(CommonException, ConfigNoKey)
}
else
@@ -429,14 +332,16 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::GetKeyValueInt(const std::string& rKeyName)
+// Name: Configuration::GetKeyValueInt(const char *)
// Purpose: Gets a key value as an integer
// Created: 2003/07/23
//
// --------------------------------------------------------------------------
-int Configuration::GetKeyValueInt(const std::string& rKeyName) const
+int Configuration::GetKeyValueInt(const char *pKeyName) const
{
- std::map<std::string, std::string>::const_iterator i(mKeys.find(rKeyName));
+ if(pKeyName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
+ std::map<std::string, std::string>::const_iterator i(mKeys.find(pKeyName));
if(i == mKeys.end())
{
@@ -457,14 +362,16 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::GetKeyValueBool(const std::string&)
+// Name: Configuration::GetKeyValueBool(const char *) const
// Purpose: Gets a key value as a boolean
// Created: 17/2/04
//
// --------------------------------------------------------------------------
-bool Configuration::GetKeyValueBool(const std::string& rKeyName) const
+bool Configuration::GetKeyValueBool(const char *pKeyName) const
{
- std::map<std::string, std::string>::const_iterator i(mKeys.find(rKeyName));
+ if(pKeyName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
+ std::map<std::string, std::string>::const_iterator i(mKeys.find(pKeyName));
if(i == mKeys.end())
{
@@ -521,21 +428,22 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::SubConfigurationExists(const
-// std::string&)
+// Name: Configuration::SubConfigurationExists(const char *)
// Purpose: Checks to see if a sub configuration exists
// Created: 2003/07/23
//
// --------------------------------------------------------------------------
-bool Configuration::SubConfigurationExists(const std::string& rSubName) const
+bool Configuration::SubConfigurationExists(const char *pSubName) const
{
+ if(pSubName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
// Attempt to find it...
std::list<std::pair<std::string, Configuration> >::const_iterator i(mSubConfigurations.begin());
for(; i != mSubConfigurations.end(); ++i)
{
// This the one?
- if(i->first == rSubName)
+ if(i->first == pSubName)
{
// Yes.
return true;
@@ -550,22 +458,22 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: Configuration::GetSubConfiguration(const
-// std::string&)
+// Name: Configuration::GetSubConfiguration(const char *)
// Purpose: Gets a sub configuration
// Created: 2003/07/23
//
// --------------------------------------------------------------------------
-const Configuration &Configuration::GetSubConfiguration(const std::string&
- rSubName) const
+const Configuration &Configuration::GetSubConfiguration(const char *pSubName) const
{
+ if(pSubName == 0) {THROW_EXCEPTION(CommonException, BadArguments)}
+
// Attempt to find it...
std::list<std::pair<std::string, Configuration> >::const_iterator i(mSubConfigurations.begin());
for(; i != mSubConfigurations.end(); ++i)
{
// This the one?
- if(i->first == rSubName)
+ if(i->first == pSubName)
{
// Yes.
return i->second;
@@ -620,14 +528,15 @@
do
{
// Can the key be found?
- if(rConfig.KeyExists(pvkey->Name()))
+ ASSERT(pvkey->mpName);
+ if(rConfig.KeyExists(pvkey->mpName))
{
// Get value
- const std::string &rval = rConfig.GetKeyValue(pvkey->Name());
+ const std::string &rval = rConfig.GetKeyValue(pvkey->mpName);
const char *val = rval.c_str();
// Check it's a number?
- if((pvkey->Flags() & ConfigTest_IsInt) == ConfigTest_IsInt)
+ if((pvkey->Tests & ConfigTest_IsInt) == ConfigTest_IsInt)
{
// Test it...
char *end;
@@ -636,12 +545,12 @@
{
// not a good value
ok = false;
- rErrorMsg += rLevel + rConfig.mName + "." + pvkey->Name() + " (key) is not a valid integer.\n";
+ rErrorMsg += rLevel + rConfig.mName +"." + pvkey->mpName + " (key) is not a valid integer.\n";
}
}
// Check it's a bool?
- if((pvkey->Flags() & ConfigTest_IsBool) == ConfigTest_IsBool)
+ if((pvkey->Tests & ConfigTest_IsBool) == ConfigTest_IsBool)
{
// See if it's one of the allowed strings.
bool found = false;
@@ -659,38 +568,37 @@
if(!found)
{
ok = false;
- rErrorMsg += rLevel + rConfig.mName + "." + pvkey->Name() + " (key) is not a valid boolean value.\n";
+ rErrorMsg += rLevel + rConfig.mName +"." + pvkey->mpName + " (key) is not a valid boolean value.\n";
}
}
// Check for multi valued statments where they're not allowed
- if((pvkey->Flags() & ConfigTest_MultiValueAllowed) == 0)
+ if((pvkey->Tests & ConfigTest_MultiValueAllowed) == 0)
{
// Check to see if this key is a multi-value -- it shouldn't be
if(rval.find(MultiValueSeparator) != rval.npos)
{
ok = false;
- rErrorMsg += rLevel + rConfig.mName +"." + pvkey->Name() + " (key) multi value not allowed (duplicated key?).\n";
+ rErrorMsg += rLevel + rConfig.mName +"." + pvkey->mpName + " (key) multi value not allowed (duplicated key?).\n";
}
}
}
else
{
// Is it required to exist?
- if((pvkey->Flags() & ConfigTest_Exists) == ConfigTest_Exists)
+ if((pvkey->Tests & ConfigTest_Exists) == ConfigTest_Exists)
{
// Should exist, but doesn't.
ok = false;
- rErrorMsg += rLevel + rConfig.mName + "." + pvkey->Name() + " (key) is missing.\n";
+ rErrorMsg += rLevel + rConfig.mName + "." + pvkey->mpName + " (key) is missing.\n";
}
- else if(pvkey->HasDefaultValue())
+ else if(pvkey->mpDefaultValue)
{
- rConfig.mKeys[pvkey->Name()] =
- pvkey->DefaultValue();
+ rConfig.mKeys[std::string(pvkey->mpName)] = std::string(pvkey->mpDefaultValue);
}
}
- if((pvkey->Flags() & ConfigTest_LastEntry) == ConfigTest_LastEntry)
+ if((pvkey->Tests & ConfigTest_LastEntry) == ConfigTest_LastEntry)
{
// No more!
todo = false;
@@ -710,14 +618,14 @@
bool found = false;
while(scan)
{
- if(scan->Name() == i->first)
+ if(scan->mpName == i->first)
{
found = true;
break;
}
// Next?
- if((scan->Flags() & ConfigTest_LastEntry) == ConfigTest_LastEntry)
+ if((scan->Tests & ConfigTest_LastEntry) == ConfigTest_LastEntry)
{
break;
}
@@ -742,7 +650,8 @@
const ConfigurationVerify *scan = rVerify.mpSubConfigurations;
while(scan)
{
- if(scan->mName.length() > 0 && scan->mName[0] == '*')
+ ASSERT(scan->mpName);
+ if(scan->mpName[0] == '*')
{
wildcardverify = scan;
}
@@ -750,8 +659,7 @@
// Required?
if((scan->Tests & ConfigTest_Exists) == ConfigTest_Exists)
{
- if(scan->mName.length() > 0 &&
- scan->mName[0] == '*')
+ if(scan->mpName[0] == '*')
{
// Check something exists
if(rConfig.mSubConfigurations.size() < 1)
@@ -764,11 +672,11 @@
else
{
// Check real thing exists
- if(!rConfig.SubConfigurationExists(scan->mName))
+ if(!rConfig.SubConfigurationExists(scan->mpName))
{
// Should exist, but doesn't.
ok = false;
- rErrorMsg += rLevel + rConfig.mName + "." + scan->mName + " (block) is missing.\n";
+ rErrorMsg += rLevel + rConfig.mName + "." + scan->mpName + " (block) is missing.\n";
}
}
}
@@ -793,7 +701,7 @@
ASSERT(name);
while(scan)
{
- if(scan->mName == name)
+ if(strcmp(scan->mpName, name) == 0)
{
// found it!
subverify = scan;
Modified: box/trunk/lib/common/Configuration.h
===================================================================
--- box/trunk/lib/common/Configuration.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Configuration.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -29,51 +29,20 @@
class ConfigurationVerifyKey
{
public:
- typedef enum
- {
- NoDefaultValue = 1
- } NoDefaultValue_t;
-
- ConfigurationVerifyKey(std::string name, int flags,
- void *testFunction = NULL);
- // to allow passing ConfigurationVerifyKey::NoDefaultValue
- // for default ListenAddresses
- ConfigurationVerifyKey(std::string name, int flags,
- NoDefaultValue_t t, void *testFunction = NULL);
- ConfigurationVerifyKey(std::string name, int flags,
- std::string defaultValue, void *testFunction = NULL);
- ConfigurationVerifyKey(std::string name, int flags,
- const char* defaultValue, void *testFunction = NULL);
- ConfigurationVerifyKey(std::string name, int flags,
- int defaultValue, void *testFunction = NULL);
- ConfigurationVerifyKey(std::string name, int flags,
- bool defaultValue, void *testFunction = NULL);
- const std::string& Name() const { return mName; }
- const std::string& DefaultValue() const { return mDefaultValue; }
- const bool HasDefaultValue() const { return mHasDefaultValue; }
- const int Flags() const { return mFlags; }
- const void* TestFunction() const { return mTestFunction; }
- ConfigurationVerifyKey(const ConfigurationVerifyKey& rToCopy);
-
-private:
- ConfigurationVerifyKey& operator=(const ConfigurationVerifyKey&
- noAssign);
-
- std::string mName; // "*" for all other keys (not implemented yet)
- std::string mDefaultValue; // default for when it's not present
- bool mHasDefaultValue;
- int mFlags;
- void *mTestFunction; // set to zero for now, will implement later
+ const char *mpName; // "*" for all other keys (not implemented yet)
+ const char *mpDefaultValue; // default for when it's not present
+ int Tests;
+ void *TestFunction; // set to zero for now, will implement later
};
class ConfigurationVerify
{
public:
- std::string mName; // "*" for all other sub config names
+ const char *mpName; // "*" for all other sub config names
const ConfigurationVerify *mpSubConfigurations;
const ConfigurationVerifyKey *mpKeys;
int Tests;
- void *TestFunction; // set to zero for now, will implement later
+ void *TestFunction; // set to zero for now, will implement later
};
class FdGetLine;
@@ -110,14 +79,14 @@
std::string &rErrorMsg)
{ return LoadAndVerify(rFilename, 0, rErrorMsg); }
- bool KeyExists(const std::string& rKeyName) const;
- const std::string &GetKeyValue(const std::string& rKeyName) const;
- int GetKeyValueInt(const std::string& rKeyName) const;
- bool GetKeyValueBool(const std::string& rKeyName) const;
+ bool KeyExists(const char *pKeyName) const;
+ const std::string &GetKeyValue(const char *pKeyName) const;
+ int GetKeyValueInt(const char *pKeyName) const;
+ bool GetKeyValueBool(const char *pKeyName) const;
std::vector<std::string> GetKeyNames() const;
- bool SubConfigurationExists(const std::string& rSubName) const;
- const Configuration &GetSubConfiguration(const std::string& rSubName) const;
+ bool SubConfigurationExists(const char *pSubName) const;
+ const Configuration &GetSubConfiguration(const char *pSubName) const;
std::vector<std::string> GetSubConfigurationNames() const;
std::string mName;
Modified: box/trunk/lib/common/DebugMemLeakFinder.cpp
===================================================================
--- box/trunk/lib/common/DebugMemLeakFinder.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/DebugMemLeakFinder.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -146,9 +146,7 @@
std::map<void *, MallocBlockInfo>::iterator i(sMallocBlocks.find(ptr));
if(ptr && i == sMallocBlocks.end())
{
- BOX_WARNING("Block " << ptr << " realloc()ated, but not "
- "in list. Error? Or allocated in startup static "
- "objects?");
+ TRACE1("Block %x realloc(), but not in list. Error? Or allocated in startup static objects?\n", ptr);
}
void *b = ::realloc(ptr, size);
@@ -195,9 +193,7 @@
}
else
{
- BOX_WARNING("Block " << ptr << " freed, but not "
- "known. Error? Or allocated in startup "
- "static allocation?");
+ TRACE1("Block %p freed, but not known. Error? Or allocated in startup static allocation?\n", ptr);
}
if(sTrackMallocInSection)
@@ -297,21 +293,16 @@
std::map<void *, MallocBlockInfo>::const_iterator i(sMallocBlocks.find(*s));
if(i == sMallocBlocks.end())
{
- BOX_WARNING("Logical error in section block finding");
+ TRACE0("Logical error in section block finding\n");
}
else
{
- BOX_TRACE("Block " << i->first << " size " <<
- i->second.size << " allocated at " <<
- i->second.file << ":" << i->second.line);
+ TRACE4("Block %p size %d allocated at %s:%d\n", i->first, i->second.size, i->second.file, i->second.line);
}
}
for(std::map<void *, ObjectInfo>::const_iterator i(sSectionObjectBlocks.begin()); i != sSectionObjectBlocks.end(); ++i)
{
- BOX_TRACE("Object" << (i->second.array?" []":"") << " " <<
- i->first << " size " << i->second.size <<
- " allocated at " << i->second.file <<
- ":" << i->second.line);
+ TRACE5("Object%s %p size %d allocated at %s:%d\n", i->second.array?" []":"", i->first, i->second.size, i->second.file, i->second.line);
}
}
Modified: box/trunk/lib/common/EventWatchFilesystemObject.cpp
===================================================================
--- box/trunk/lib/common/EventWatchFilesystemObject.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/EventWatchFilesystemObject.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -26,10 +26,9 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: EventWatchFilesystemObject::EventWatchFilesystemObject
-// (const char *)
-// Purpose: Constructor -- opens the file object
-// Created: 12/3/04
+// Name: EventWatchFilesystemObject::EventWatchFilesystemObject(const char *)
+// Purpose: Constructor -- opens the file object
+// Created: 12/3/04
//
// --------------------------------------------------------------------------
EventWatchFilesystemObject::EventWatchFilesystemObject(const char *Filename)
@@ -40,8 +39,9 @@
#ifdef HAVE_KQUEUE
if(mDescriptor == -1)
{
- BOX_LOG_SYS_ERROR("EventWatchFilesystemObject: "
- "Failed to open file '" << Filename << "'");
+ BOX_ERROR("EventWatchFilesystemObject: "
+ "Failed to open file '" << Filename << "': " <<
+ strerror(errno));
THROW_EXCEPTION(CommonException, OSFileOpenError)
}
#else
@@ -53,9 +53,9 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: EventWatchFilesystemObject::~EventWatchFilesystemObject()
-// Purpose: Destructor
-// Created: 12/3/04
+// Name: EventWatchFilesystemObject::~EventWatchFilesystemObject()
+// Purpose: Destructor
+// Created: 12/3/04
//
// --------------------------------------------------------------------------
EventWatchFilesystemObject::~EventWatchFilesystemObject()
@@ -70,14 +70,12 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: EventWatchFilesystemObject::EventWatchFilesystemObject
-// (const EventWatchFilesystemObject &)
-// Purpose: Copy constructor
-// Created: 12/3/04
+// Name: EventWatchFilesystemObject::EventWatchFilesystemObject(const EventWatchFilesystemObject &)
+// Purpose: Copy constructor
+// Created: 12/3/04
//
// --------------------------------------------------------------------------
-EventWatchFilesystemObject::EventWatchFilesystemObject(
- const EventWatchFilesystemObject &rToCopy)
+EventWatchFilesystemObject::EventWatchFilesystemObject(const EventWatchFilesystemObject &rToCopy)
: mDescriptor(::dup(rToCopy.mDescriptor))
{
if(mDescriptor == -1)
@@ -91,20 +89,17 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: EventWatchFilesystemObject::FillInKEvent(struct kevent &, int)
-// Purpose: For WaitForEvent
-// Created: 12/3/04
+// Name: EventWatchFilesystemObject::FillInKEvent(struct kevent &, int)
+// Purpose: For WaitForEvent
+// Created: 12/3/04
//
// --------------------------------------------------------------------------
-void EventWatchFilesystemObject::FillInKEvent(struct kevent &rEvent,
- int Flags) const
+void EventWatchFilesystemObject::FillInKEvent(struct kevent &rEvent, int Flags) const
{
- EV_SET(&rEvent, mDescriptor, EVFILT_VNODE, EV_CLEAR,
- NOTE_DELETE | NOTE_WRITE, 0, (void*)this);
+ EV_SET(&rEvent, mDescriptor, EVFILT_VNODE, EV_CLEAR, NOTE_DELETE | NOTE_WRITE, 0, (void*)this);
}
#else
-void EventWatchFilesystemObject::FillInPoll(int &fd, short &events,
- int Flags) const
+void EventWatchFilesystemObject::FillInPoll(int &fd, short &events, int Flags) const
{
THROW_EXCEPTION(CommonException, KQueueNotSupportedOnThisPlatform)
}
Modified: box/trunk/lib/common/FileStream.cpp
===================================================================
--- box/trunk/lib/common/FileStream.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/FileStream.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -30,8 +30,7 @@
#else
: mOSFileHandle(::open(Filename, flags, mode)),
#endif
- mIsEOF(false),
- mFileName(Filename)
+ mIsEOF(false)
{
#ifdef WIN32
if(mOSFileHandle == INVALID_HANDLE_VALUE)
@@ -50,6 +49,9 @@
THROW_EXCEPTION(CommonException, OSFileOpenError)
}
}
+#ifdef WIN32
+ this->fileName = Filename;
+#endif
}
@@ -63,8 +65,7 @@
// --------------------------------------------------------------------------
FileStream::FileStream(tOSFileHandle FileDescriptor)
: mOSFileHandle(FileDescriptor),
- mIsEOF(false),
- mFileName("HANDLE")
+ mIsEOF(false)
{
#ifdef WIN32
if(mOSFileHandle == INVALID_HANDLE_VALUE)
@@ -76,6 +77,9 @@
BOX_ERROR("FileStream: called with invalid file handle");
THROW_EXCEPTION(CommonException, OSFileOpenError)
}
+#ifdef WIN32
+ this->fileName = "HANDLE";
+#endif
}
#if 0
@@ -146,32 +150,27 @@
NULL
);
- if(valid)
+ if ( valid )
{
r = numBytesRead;
}
- else if(GetLastError() == ERROR_BROKEN_PIPE)
+ else if (GetLastError() == ERROR_BROKEN_PIPE)
{
r = 0;
}
else
{
- BOX_LOG_WIN_ERROR("Failed to read from file: " << mFileName);
+ BOX_ERROR("Failed to read from file: " <<
+ GetErrorMessage(GetLastError()));
r = -1;
}
#else
int r = ::read(mOSFileHandle, pBuffer, NBytes);
- if(r == -1)
- {
- BOX_LOG_SYS_ERROR("Failed to read from file: " << mFileName);
- }
#endif
-
if(r == -1)
{
THROW_EXCEPTION(CommonException, OSFileReadError)
}
-
if(r == 0)
{
mIsEOF = true;
Modified: box/trunk/lib/common/FileStream.h
===================================================================
--- box/trunk/lib/common/FileStream.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/FileStream.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -57,8 +57,10 @@
bool mIsEOF;
FileStream(const FileStream &rToCopy) { /* do not call */ }
+#ifdef WIN32
// for debugging..
- std::string mFileName;
+ std::string fileName;
+#endif
};
Modified: box/trunk/lib/common/Guards.h
===================================================================
--- box/trunk/lib/common/Guards.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Guards.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -37,8 +37,8 @@
{
if(mOSFileHandle < 0)
{
- BOX_LOG_SYS_ERROR("FileHandleGuard: failed to open "
- "file '" << rFilename << "'");
+ BOX_ERROR("FileHandleGuard: failed to open file '" <<
+ rFilename << "': " << strerror(errno));
THROW_EXCEPTION(CommonException, OSFileOpenError)
}
}
Modified: box/trunk/lib/common/Logging.h
===================================================================
--- box/trunk/lib/common/Logging.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Logging.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -27,16 +27,16 @@
#define BOX_LOG(level, stuff) \
{ \
- std::ostringstream _box_log_line; \
- _box_log_line << stuff; \
- Logging::Log(level, __FILE__, __LINE__, _box_log_line.str()); \
+ std::ostringstream line; \
+ line << stuff; \
+ Logging::Log(level, __FILE__, __LINE__, line.str()); \
}
#define BOX_SYSLOG(level, stuff) \
{ \
- std::ostringstream _box_log_line; \
- _box_log_line << stuff; \
- Logging::LogToSyslog(level, __FILE__, __LINE__, _box_log_line.str()); \
+ std::ostringstream line; \
+ line << stuff; \
+ Logging::LogToSyslog(level, __FILE__, __LINE__, line.str()); \
}
#define BOX_FATAL(stuff) BOX_LOG(Log::FATAL, stuff)
@@ -48,32 +48,15 @@
if (Logging::IsEnabled(Log::TRACE)) \
{ BOX_LOG(Log::TRACE, stuff) }
-#define BOX_LOG_SYS_WARNING(stuff) \
- BOX_WARNING(stuff << ": " << strerror(errno) << " (" << errno << ")")
-#define BOX_LOG_SYS_ERROR(stuff) \
- BOX_ERROR(stuff << ": " << strerror(errno) << " (" << errno << ")")
-#define BOX_LOG_SYS_FATAL(stuff) \
- BOX_FATAL(stuff << ": " << strerror(errno) << " (" << errno << ")")
-
-#ifdef WIN32
- #define BOX_LOG_WIN_ERROR(stuff) \
- BOX_ERROR(stuff << ": " << GetErrorMessage(GetLastError()))
- #define BOX_LOG_WIN_ERROR_NUMBER(stuff, number) \
- BOX_ERROR(stuff << ": " << GetErrorMessage(number))
-#endif
-
-#define BOX_FORMAT_HEX32(number) \
+#define BOX_FORMAT_ACCOUNT(accno) \
std::hex << \
std::showbase << \
std::internal << \
std::setw(10) << \
std::setfill('0') << \
- (number) << \
+ (accno) << \
std::dec
-#define BOX_FORMAT_ACCOUNT(accno) \
- BOX_FORMAT_HEX32(accno)
-
#define BOX_FORMAT_OBJECTID(objectid) \
std::hex << \
std::showbase << \
Modified: box/trunk/lib/common/PartialReadStream.cpp
===================================================================
--- box/trunk/lib/common/PartialReadStream.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/PartialReadStream.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -44,8 +44,7 @@
// Warn in debug mode
if(mBytesLeft != 0)
{
- BOX_TRACE("PartialReadStream destroyed with " << mBytesLeft <<
- " bytes remaining");
+ TRACE1("PartialReadStream::~PartialReadStream when mBytesLeft = %d\n", mBytesLeft);
}
}
Modified: box/trunk/lib/common/Utils.cpp
===================================================================
--- box/trunk/lib/common/Utils.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Utils.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -53,10 +53,10 @@
rOutput.push_back(String.substr(b));
}
/*#ifndef NDEBUG
- BOX_TRACE("Splitting string '" << String << " on " << (char)SplitOn);
+ TRACE2("Splitting string '%s' on %c\n", String.c_str(), SplitOn);
for(unsigned int l = 0; l < rOutput.size(); ++l)
{
- BOX_TRACE(l << " = '" << rOutput[l] << "'");
+ TRACE2("%d = '%s'\n", l, rOutput[l].c_str());
}
#endif*/
}
@@ -159,65 +159,6 @@
return ((st.st_mode & S_IFDIR) == 0)?ObjectExists_File:ObjectExists_Dir;
}
-std::string HumanReadableSize(int64_t Bytes)
-{
- double readableValue = Bytes;
- std::string units = " B";
- if (readableValue > 1024)
- {
- readableValue /= 1024;
- units = "kB";
- }
-
- if (readableValue > 1024)
- {
- readableValue /= 1024;
- units = "MB";
- }
-
- if (readableValue > 1024)
- {
- readableValue /= 1024;
- units = "GB";
- }
-
- std::ostringstream result;
- result << std::fixed << std::setprecision(2) << readableValue <<
- " " << units;
- return result.str();
-}
-std::string FormatUsageBar(int64_t Blocks, int64_t Bytes, int64_t Max)
-{
- std::ostringstream result;
-
- // Bar graph
- char bar[17];
- unsigned int b = (int)((Bytes * (sizeof(bar)-1)) / Max);
- if(b > sizeof(bar)-1) {b = sizeof(bar)-1;}
- for(unsigned int l = 0; l < b; l++)
- {
- bar[l] = '*';
- }
- for(unsigned int l = b; l < sizeof(bar) - 1; l++)
- {
- bar[l] = ' ';
- }
- bar[sizeof(bar)-1] = '\0';
-
- result << std::fixed <<
- std::setw(10) << Blocks << " blocks, " <<
- std::setw(10) << HumanReadableSize(Bytes) << ", " <<
- std::setw(3) << std::setprecision(0) <<
- ((Bytes*100)/Max) << "% |" << bar << "|";
-
- return result.str();
-}
-std::string FormatUsageLineStart(const std::string& rName)
-{
- std::ostringstream result;
- result << std::setw(20) << std::right << rName << ": ";
- return result.str();
-}
Modified: box/trunk/lib/common/Utils.h
===================================================================
--- box/trunk/lib/common/Utils.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/common/Utils.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -30,9 +30,6 @@
ObjectExists_Dir = 2
};
int ObjectExists(const std::string& rFilename);
-std::string HumanReadableSize(int64_t Bytes);
-std::string FormatUsageBar(int64_t Blocks, int64_t Bytes, int64_t Max);
-std::string FormatUsageLineStart(const std::string& rName);
#include "MemLeakFindOff.h"
Modified: box/trunk/lib/compress/Compress.h
===================================================================
--- box/trunk/lib/compress/Compress.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/compress/Compress.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -52,12 +52,10 @@
if((r = ((Compressing)?(deflateEnd(&mStream))
:(inflateEnd(&mStream)))) != Z_OK)
{
- BOX_WARNING("zlib error code = " << r);
+ TRACE1("zlib error code = %d\n", r);
if(r == Z_DATA_ERROR)
{
- BOX_WARNING("End of compress/decompress "
- "without all input being consumed, "
- "possible corruption?");
+ TRACE0("WARNING: End of compress/decompress without all input being consumed -- possible corruption?\n");
}
else
{
@@ -150,7 +148,7 @@
// Check errors
if(ret < 0)
{
- BOX_WARNING("zlib error code = " << ret);
+ TRACE1("zlib error code = %d\n", ret);
THROW_EXCEPTION(CompressException, TransformFailed)
}
Modified: box/trunk/lib/compress/CompressStream.cpp
===================================================================
--- box/trunk/lib/compress/CompressStream.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/compress/CompressStream.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -414,7 +414,7 @@
{
size *= 2;
}
- BOX_TRACE("Allocating CompressStream buffer, size " << size);
+ TRACE1("Allocating CompressStream buffer, size %d\n", size);
mpBuffer = ::malloc(size);
if(mpBuffer == 0)
{
Modified: box/trunk/lib/crypto/CipherContext.cpp
===================================================================
--- box/trunk/lib/crypto/CipherContext.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/crypto/CipherContext.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -166,8 +166,7 @@
// Warn if in a transformation (not an error, because a context might not have been finalised if an exception occured)
if(mWithinTransform)
{
- BOX_WARNING("CipherContext::Begin called when context "
- "flagged as within a transform");
+ TRACE0("CipherContext::Begin called when context flagged as within a transform\n");
}
// Initialise the cipher context again
@@ -424,8 +423,7 @@
// Warn if in a transformation
if(mWithinTransform)
{
- BOX_WARNING("CipherContext::TransformBlock called when "
- "context flagged as within a transform");
+ TRACE0("CipherContext::TransformBlock called when context flagged as within a transform\n");
}
// Check output buffer size
@@ -523,8 +521,7 @@
// Warn if in a transformation
if(mWithinTransform)
{
- BOX_WARNING("CipherContext::SetIV called when context "
- "flagged as within a transform");
+ TRACE0("CipherContext::SetIV called when context flagged as within a transform\n");
}
// Set IV
@@ -562,8 +559,7 @@
// Warn if in a transformation
if(mWithinTransform)
{
- BOX_WARNING("CipherContext::SetRandomIV called when "
- "context flagged as within a transform");
+ TRACE0("CipherContext::SetRandomIV called when context flagged as within a transform\n");
}
// Get length of IV
Modified: box/trunk/lib/intercept/intercept.cpp
===================================================================
--- box/trunk/lib/intercept/intercept.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/intercept/intercept.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -375,12 +375,12 @@
if (hookfn != NULL)
{
- BOX_TRACE("readdir hooked to " << hookfn << " for " << dirname);
+ TRACE2("readdir hooked to %p for %s\n", hookfn, dirname);
}
else if (intercept_filename != NULL)
{
- BOX_TRACE("readdir unhooked from " << readdir_hook <<
- " for " << intercept_filename);
+ TRACE2("readdir unhooked from %p for %s\n", readdir_hook,
+ intercept_filename);
}
intercept_filename = dirname;
@@ -392,11 +392,11 @@
/*
if (hookfn != NULL)
{
- BOX_TRACE("lstat hooked to " << hookfn << " for " << filename);
+ TRACE2("lstat hooked to %p for %s\n", hookfn, filename);
}
else
{
- BOX_TRACE("lstat unhooked from " << lstat_hook << " for " <<
+ TRACE2("lstat unhooked from %p for %s\n", lstat_hook,
lstat_file);
}
*/
Modified: box/trunk/lib/raidfile/RaidFileController.cpp
===================================================================
--- box/trunk/lib/raidfile/RaidFileController.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/raidfile/RaidFileController.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -70,14 +70,11 @@
static const ConfigurationVerifyKey verifykeys[] =
{
- ConfigurationVerifyKey("SetNumber",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("BlockSize",
- ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("Dir0", ConfigTest_Exists),
- ConfigurationVerifyKey("Dir1", ConfigTest_Exists),
- ConfigurationVerifyKey("Dir2",
- ConfigTest_Exists | ConfigTest_LastEntry)
+ {"SetNumber", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"BlockSize", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"Dir0", 0, ConfigTest_Exists, 0},
+ {"Dir1", 0, ConfigTest_Exists, 0},
+ {"Dir2", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
static const ConfigurationVerify subverify =
Modified: box/trunk/lib/raidfile/RaidFileWrite.cpp
===================================================================
--- box/trunk/lib/raidfile/RaidFileWrite.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/raidfile/RaidFileWrite.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -96,8 +96,7 @@
RaidFileUtil::ExistType existance = RaidFileUtil::RaidFileExists(rdiscSet, mFilename);
if(existance != RaidFileUtil::NoFile)
{
- BOX_ERROR("Attempted to overwrite raidfile " <<
- mSetNumber << " " << mFilename);
+ TRACE2("Trying to overwrite raidfile %d %s\n", mSetNumber, mFilename.c_str());
THROW_EXCEPTION(RaidFileException, CannotOverwriteExistingFile)
}
}
@@ -179,8 +178,7 @@
int written = ::write(mOSFileHandle, pBuffer, Length);
if(written != Length)
{
- BOX_LOG_SYS_ERROR("RaidFileWrite failed, Length = " <<
- Length << ", written = " << written);
+ TRACE3("RaidFileWrite::Write: Write failure, Length = %d, written = %d, errno = %d\n", Length, written, errno);
THROW_EXCEPTION(RaidFileException, OSError)
}
}
@@ -781,7 +779,7 @@
// --------------------------------------------------------------------------
void RaidFileWrite::Close()
{
- BOX_WARNING("RaidFileWrite::Close() called, discarding file");
+ TRACE0("Warning: RaidFileWrite::Close() called, discarding file\n");
if(mOSFileHandle != -1)
{
Discard();
Modified: box/trunk/lib/server/Daemon.cpp
===================================================================
--- box/trunk/lib/server/Daemon.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/Daemon.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -465,7 +465,8 @@
// Set new session
if(::setsid() == -1)
{
- BOX_LOG_SYS_ERROR("Failed to setsid()");
+ BOX_ERROR("Failed to setsid(): " <<
+ strerror(errno));
THROW_EXCEPTION(ServerException, DaemoniseFailed)
}
@@ -474,7 +475,6 @@
{
case -1:
// error
- BOX_LOG_SYS_ERROR("Failed to fork() a child");
THROW_EXCEPTION(ServerException, DaemoniseFailed)
break;
@@ -497,11 +497,9 @@
struct sigaction sa;
sa.sa_handler = SignalHandler;
sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask); // macro
- if(::sigaction(SIGHUP, &sa, NULL) != 0 ||
- ::sigaction(SIGTERM, &sa, NULL) != 0)
+ sigemptyset(&sa.sa_mask); // macro
+ if(::sigaction(SIGHUP, &sa, NULL) != 0 || ::sigaction(SIGTERM, &sa, NULL) != 0)
{
- BOX_LOG_SYS_ERROR("Failed to set signal handlers");
THROW_EXCEPTION(ServerException, DaemoniseFailed)
}
#endif // !WIN32
@@ -517,8 +515,7 @@
if(::write(pidFile, pid, pidsize) != pidsize)
{
- BOX_LOG_SYS_FATAL("Failed to write PID file: " <<
- pidFileName);
+ BOX_FATAL("can't write pid file");
THROW_EXCEPTION(ServerException, DaemoniseFailed)
}
@@ -547,7 +544,6 @@
int devnull = ::open(PLATFORM_DEV_NULL, O_RDWR, 0);
if(devnull == -1)
{
- BOX_LOG_SYS_ERROR("Failed to open /dev/null");
THROW_EXCEPTION(CommonException, OSFileError);
}
// Then duplicate them to all three handles
@@ -894,8 +890,6 @@
{
return 0;
}
- BOX_LOG_SYS_ERROR("Failed to stat configuration file: " <<
- GetConfigFileName());
THROW_EXCEPTION(CommonException, OSFileError)
}
Modified: box/trunk/lib/server/Daemon.h
===================================================================
--- box/trunk/lib/server/Daemon.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/Daemon.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -92,9 +92,8 @@
std::string mAppName;
};
-#define DAEMON_VERIFY_SERVER_KEYS \
- ConfigurationVerifyKey("PidFile", ConfigTest_Exists), \
- ConfigurationVerifyKey("User", ConfigTest_LastEntry)
+#define DAEMON_VERIFY_SERVER_KEYS {"PidFile", 0, ConfigTest_Exists, 0}, \
+ {"User", 0, ConfigTest_LastEntry, 0}
#endif // DAEMON__H
Modified: box/trunk/lib/server/ProtocolUncertainStream.cpp
===================================================================
--- box/trunk/lib/server/ProtocolUncertainStream.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/ProtocolUncertainStream.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -41,8 +41,7 @@
{
if(!mFinished)
{
- BOX_WARNING("ProtocolUncertainStream destroyed before "
- "stream finished");
+ TRACE0("ProtocolUncertainStream::~ProtocolUncertainStream() destroyed when stream not complete\n");
}
}
Modified: box/trunk/lib/server/ServerControl.h
===================================================================
--- box/trunk/lib/server/ServerControl.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/ServerControl.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -142,7 +142,8 @@
bool killed = (::kill(pid, SIGTERM) == 0);
if (!killed)
{
- BOX_LOG_SYS_ERROR("Failed to kill process " << pid);
+ BOX_ERROR("Failed to kill process " << pid << ": " <<
+ strerror(errno));
}
TEST_THAT(killed);
return killed;
Modified: box/trunk/lib/server/ServerStream.h
===================================================================
--- box/trunk/lib/server/ServerStream.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/ServerStream.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -273,7 +273,7 @@
}
// Log it
- BOX_NOTICE("Message from child process " << pid << ": " << logMessage);
+ BOX_WARNING("Message from child process " << pid << ": " << logMessage);
}
else
{
@@ -365,8 +365,8 @@
};
#define SERVERSTREAM_VERIFY_SERVER_KEYS(DEFAULT_ADDRESSES) \
- ConfigurationVerifyKey("ListenAddresses", 0, DEFAULT_ADDRESSES), \
- DAEMON_VERIFY_SERVER_KEYS
+ {"ListenAddresses", DEFAULT_ADDRESSES, 0, 0}, \
+ DAEMON_VERIFY_SERVER_KEYS
#include "MemLeakFindOff.h"
Modified: box/trunk/lib/server/ServerTLS.h
===================================================================
--- box/trunk/lib/server/ServerTLS.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/ServerTLS.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -70,10 +70,11 @@
};
#define SERVERTLS_VERIFY_SERVER_KEYS(DEFAULT_ADDRESSES) \
- ConfigurationVerifyKey("CertificateFile", ConfigTest_Exists), \
- ConfigurationVerifyKey("PrivateKeyFile", ConfigTest_Exists), \
- ConfigurationVerifyKey("TrustedCAsFile", ConfigTest_Exists), \
- SERVERSTREAM_VERIFY_SERVER_KEYS(DEFAULT_ADDRESSES)
+ {"CertificateFile", 0, ConfigTest_Exists, 0}, \
+ {"PrivateKeyFile", 0, ConfigTest_Exists, 0}, \
+ {"TrustedCAsFile", 0, ConfigTest_Exists, 0}, \
+ SERVERSTREAM_VERIFY_SERVER_KEYS(DEFAULT_ADDRESSES)
+
#endif // SERVERTLS__H
Modified: box/trunk/lib/server/SocketListen.h
===================================================================
--- box/trunk/lib/server/SocketListen.h 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/SocketListen.h 2008-04-04 21:59:29 UTC (rev 2124)
@@ -108,57 +108,45 @@
if(::close(mSocketHandle) == -1)
#endif
{
- BOX_LOG_SYS_ERROR("Failed to close network "
- "socket");
- THROW_EXCEPTION(ServerException,
- SocketCloseError)
+ THROW_EXCEPTION(ServerException, SocketCloseError)
}
}
mSocketHandle = -1;
}
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
//
// Function
// Name: SocketListen::Listen(int, char*, int)
// Purpose: Initialises, starts the socket listening.
// Created: 2003/07/31
//
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
void Listen(int Type, const char *Name, int Port = 0)
{
- if(mSocketHandle != -1)
- {
- THROW_EXCEPTION(ServerException, SocketAlreadyOpen);
- }
+ if(mSocketHandle != -1) {THROW_EXCEPTION(ServerException, SocketAlreadyOpen)}
// Setup parameters based on type, looking up names if required
int sockDomain = 0;
SocketAllAddr addr;
int addrLen = 0;
- Socket::NameLookupToSockAddr(addr, sockDomain, Type, Name,
- Port, addrLen);
+ Socket::NameLookupToSockAddr(addr, sockDomain, Type, Name, Port, addrLen);
// Create the socket
- mSocketHandle = ::socket(sockDomain, SOCK_STREAM,
- 0 /* let OS choose protocol */);
+ mSocketHandle = ::socket(sockDomain, SOCK_STREAM, 0 /* let OS choose protocol */);
if(mSocketHandle == -1)
{
- BOX_LOG_SYS_ERROR("Failed to create a network socket");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
// Set an option to allow reuse (useful for -HUP situations!)
#ifdef WIN32
- if(::setsockopt(mSocketHandle, SOL_SOCKET, SO_REUSEADDR, "",
- 0) == -1)
+ if(::setsockopt(mSocketHandle, SOL_SOCKET, SO_REUSEADDR, "", 0) == -1)
#else
int option = true;
- if(::setsockopt(mSocketHandle, SOL_SOCKET, SO_REUSEADDR,
- &option, sizeof(option)) == -1)
+ if(::setsockopt(mSocketHandle, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option)) == -1)
#endif
{
- BOX_LOG_SYS_ERROR("Failed to set socket options");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
@@ -173,25 +161,19 @@
}
}
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
//
// Function
// Name: SocketListen::Accept(int)
- // Purpose: Accepts a connection, returning a pointer to
- // a class of the specified type. May return a
- // null pointer if a signal happens, or there's
- // a timeout. Timeout specified in
- // milliseconds, defaults to infinite time.
+ // Purpose: Accepts a connection, returning a pointer to a class of
+ // the specified type. May return a null pointer if a signal happens,
+ // or there's a timeout. Timeout specified in milliseconds, defaults to infinite time.
// Created: 2003/07/31
//
- // ------------------------------------------------------------------
- std::auto_ptr<SocketType> Accept(int Timeout = INFTIM,
- std::string *pLogMsg = 0)
+ // --------------------------------------------------------------------------
+ std::auto_ptr<SocketType> Accept(int Timeout = INFTIM, std::string *pLogMsg = 0)
{
- if(mSocketHandle == -1)
- {
- THROW_EXCEPTION(ServerException, BadSocketHandle);
- }
+ if(mSocketHandle == -1) {THROW_EXCEPTION(ServerException, BadSocketHandle)}
// Do the accept, using the supplied locking type
int sock;
@@ -203,10 +185,8 @@
if(!socklock.HaveLock())
{
- // Didn't get the lock for some reason.
- // Wait a while, then return nothing.
- BOX_ERROR("Failed to get a lock on incoming "
- "connection");
+ // Didn't get the lock for some reason. Wait a while, then
+ // return nothing.
::sleep(1);
return std::auto_ptr<SocketType>();
}
@@ -222,18 +202,12 @@
// signal?
if(errno == EINTR)
{
- BOX_ERROR("Failed to accept "
- "connection: interrupted by "
- "signal");
// return nothing
return std::auto_ptr<SocketType>();
}
else
{
- BOX_LOG_SYS_ERROR("Failed to poll "
- "connection");
- THROW_EXCEPTION(ServerException,
- SocketPollError)
+ THROW_EXCEPTION(ServerException, SocketPollError)
}
break;
case 0: // timed out
@@ -246,19 +220,16 @@
sock = ::accept(mSocketHandle, &addr, &addrlen);
}
-
- // Got socket (or error), unlock (implicit in destruction)
+ // Got socket (or error), unlock (implcit in destruction)
if(sock == -1)
{
- BOX_LOG_SYS_ERROR("Failed to accept connection");
THROW_EXCEPTION(ServerException, SocketAcceptError)
}
// Log it
if(pLogMsg)
{
- *pLogMsg = Socket::IncomingConnectionLogMessage(&addr,
- addrlen);
+ *pLogMsg = Socket::IncomingConnectionLogMessage(&addr, addrlen);
}
else
{
@@ -272,29 +243,27 @@
// Functions to allow adding to WaitForEvent class, for efficient waiting
// on multiple sockets.
#ifdef HAVE_KQUEUE
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
//
// Function
// Name: SocketListen::FillInKEevent
// Purpose: Fills in a kevent structure for this socket
// Created: 9/3/04
//
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
void FillInKEvent(struct kevent &rEvent, int Flags = 0) const
{
- EV_SET(&rEvent, mSocketHandle, EVFILT_READ, 0, 0, 0,
- (void*)this);
+ EV_SET(&rEvent, mSocketHandle, EVFILT_READ, 0, 0, 0, (void*)this);
}
#else
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
//
// Function
// Name: SocketListen::FillInPoll
- // Purpose: Fills in the data necessary for a poll
- // operation
+ // Purpose: Fills in the data necessary for a poll operation
// Created: 9/3/04
//
- // ------------------------------------------------------------------
+ // --------------------------------------------------------------------------
void FillInPoll(int &fd, short &events, int Flags = 0) const
{
fd = mSocketHandle;
Modified: box/trunk/lib/server/SocketStream.cpp
===================================================================
--- box/trunk/lib/server/SocketStream.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/lib/server/SocketStream.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -150,11 +150,9 @@
Socket::NameLookupToSockAddr(addr, sockDomain, Type, Name, Port, addrLen);
// Create the socket
- mSocketHandle = ::socket(sockDomain, SOCK_STREAM,
- 0 /* let OS choose protocol */);
+ mSocketHandle = ::socket(sockDomain, SOCK_STREAM, 0 /* let OS choose protocol */);
if(mSocketHandle == INVALID_SOCKET_VALUE)
{
- BOX_LOG_SYS_ERROR("Failed to create a network socket");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
@@ -165,16 +163,23 @@
#ifdef WIN32
DWORD err = WSAGetLastError();
::closesocket(mSocketHandle);
- BOX_LOG_WIN_ERROR_NUMBER("Failed to connect to socket "
- "(type " << Type << ", name " << Name <<
- ", port " << Port << ")", err);
-#else // !WIN32
- BOX_LOG_SYS_ERROR("Failed to connect to socket (type " <<
- Type << ", name " << Name << ", port " << Port <<
- ")");
+#else
+ int err = errno;
::close(mSocketHandle);
-#endif // WIN32
+#endif
+#ifdef WIN32
+ BOX_ERROR("Failed to connect to socket (type " << Type <<
+ ", name " << Name << ", port " << Port << "): " <<
+ GetErrorMessage(err)
+ );
+#else
+ BOX_ERROR("Failed to connect to socket (type " << Type <<
+ ", name " << Name << ", port " << Port << "): " <<
+ strerror(err) << " (" << err << ")"
+ );
+#endif
+
mSocketHandle = INVALID_SOCKET_VALUE;
THROW_EXCEPTION(ConnectionException, Conn_SocketConnectError)
}
@@ -215,9 +220,7 @@
else
{
// Bad!
- BOX_LOG_SYS_ERROR("Failed to poll socket");
- THROW_EXCEPTION(ServerException,
- SocketPollError)
+ THROW_EXCEPTION(ServerException, SocketPollError)
}
break;
@@ -247,12 +250,9 @@
else
{
// Other error
- BOX_LOG_SYS_ERROR("Failed to read from socket");
- THROW_EXCEPTION(ConnectionException,
- Conn_SocketReadError);
+ THROW_EXCEPTION(ConnectionException, Conn_SocketReadError)
}
}
-
// Closed for reading?
if(r == 0)
{
@@ -297,9 +297,7 @@
{
// Error.
mWriteClosed = true; // assume can't write again
- BOX_LOG_SYS_ERROR("Failed to write to socket");
- THROW_EXCEPTION(ConnectionException,
- Conn_SocketWriteError);
+ THROW_EXCEPTION(ConnectionException, Conn_SocketWriteError)
}
// Knock off bytes sent
@@ -312,9 +310,7 @@
// Need to wait until it can send again?
if(bytesLeft > 0)
{
- BOX_TRACE("Waiting to send data on socket " <<
- mSocketHandle << " (" << bytesLeft <<
- " of " << NBytes << " bytes left)");
+ TRACE3("Waiting to send data on socket %d, (%d to send of %d)\n", mSocketHandle, bytesLeft, NBytes);
// Wait for data to send.
struct pollfd p;
@@ -327,10 +323,7 @@
// Don't exception if it's just a signal
if(errno != EINTR)
{
- BOX_LOG_SYS_ERROR("Failed to poll "
- "socket");
- THROW_EXCEPTION(ServerException,
- SocketPollError)
+ THROW_EXCEPTION(ServerException, SocketPollError)
}
}
}
@@ -357,7 +350,6 @@
if(::close(mSocketHandle) == -1)
#endif
{
- BOX_LOG_SYS_ERROR("Failed to close socket");
THROW_EXCEPTION(ServerException, SocketCloseError)
}
mSocketHandle = INVALID_SOCKET_VALUE;
@@ -388,7 +380,6 @@
// Shut it down!
if(::shutdown(mSocketHandle, how) == -1)
{
- BOX_LOG_SYS_ERROR("Failed to shutdown socket");
THROW_EXCEPTION(ConnectionException, Conn_SocketShutdownError)
}
}
@@ -467,15 +458,12 @@
struct ucred cred;
socklen_t credLen = sizeof(cred);
- if(::getsockopt(mSocketHandle, SOL_SOCKET, SO_PEERCRED, &cred,
- &credLen) == 0)
+ if(::getsockopt(mSocketHandle, SOL_SOCKET, SO_PEERCRED, &cred, &credLen) == 0)
{
rUidOut = cred.uid;
rGidOut = cred.gid;
return true;
}
-
- BOX_LOG_SYS_ERROR("Failed to get peer credentials on socket");
#endif
// Not available
Modified: box/trunk/test/backupdiff/testbackupdiff.cpp
===================================================================
--- box/trunk/test/backupdiff/testbackupdiff.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/backupdiff/testbackupdiff.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -110,10 +110,8 @@
TEST_THAT((uint64_t)box_ntoh64(hdr.mOtherFileID) == (uint64_t)OtherFileID);
// number of blocks
int64_t nblocks = box_ntoh64(hdr.mNumBlocks);
- BOX_TRACE("Reading index from '" << filename << "', has " <<
- nblocks << " blocks");
- BOX_TRACE("======== ===== ========== ======== ========");
- BOX_TRACE(" Index Where EncSz/Idx Size WChcksm");
+ TRACE2("Reading index from '%s', has %lld blocks\n", filename, nblocks);
+ TRACE0("======== ===== ========== ======== ========\n Index Where EncSz/Idx Size WChcksm\n");
// Read them all in
int64_t nnew = 0, nold = 0;
for(int64_t b = 0; b < nblocks; ++b)
@@ -121,36 +119,35 @@
file_BlockIndexEntry en;
TEST_THAT(enc.ReadFullBuffer(&en, sizeof(en), 0));
int64_t s = box_ntoh64(en.mEncodedSize);
-
- // Decode the rest
- uint64_t iv = box_ntoh64(hdr.mEntryIVBase);
- iv += b;
- sBlowfishDecryptBlockEntry.SetIV(&iv);
- file_BlockIndexEntryEnc entryEnc;
- sBlowfishDecryptBlockEntry.TransformBlock(&entryEnc,
- sizeof(entryEnc), en.mEnEnc, sizeof(en.mEnEnc));
-
-
if(s > 0)
{
nnew++;
- BOX_TRACE(std::setw(8) << b << " this s=" <<
- std::setw(8) << s << " " <<
- std::setw(8) << ntohl(entryEnc.mSize) << " " <<
- std::setw(8) << std::setfill('0') <<
- std::hex << ntohl(entryEnc.mWeakChecksum));
+ #ifdef WIN32
+ TRACE2("%8I64d this s=%8I64d", b, s);
+ #else
+ TRACE2("%8lld this s=%8lld", b, s);
+ #endif
}
else
{
nold++;
- BOX_TRACE(std::setw(8) << b << " other i=" <<
- std::setw(8) << (0-s) << " " <<
- std::setw(8) << ntohl(entryEnc.mSize) << " " <<
- std::setw(8) << std::setfill('0') <<
- std::hex << ntohl(entryEnc.mWeakChecksum));
+ #ifdef WIN32
+ TRACE2("%8I64d other i=%8I64d", b, 0 - s);
+ #else
+ TRACE2("%8lld other i=%8lld", b, 0 - s);
+ #endif
}
+ // Decode the rest
+ uint64_t iv = box_ntoh64(hdr.mEntryIVBase);
+ iv += b;
+ sBlowfishDecryptBlockEntry.SetIV(&iv);
+ file_BlockIndexEntryEnc entryEnc;
+ sBlowfishDecryptBlockEntry.TransformBlock(&entryEnc, sizeof(entryEnc),
+ en.mEnEnc, sizeof(en.mEnEnc));
+ TRACE2(" %8d %08x\n", ntohl(entryEnc.mSize), ntohl(entryEnc.mWeakChecksum));
+
}
- BOX_TRACE("======== ===== ========== ======== ========");
+ TRACE0("======== ===== ========== ======== ========\n");
TEST_THAT(new_blocks_expected == nnew);
TEST_THAT(old_blocks_expected == nold);
}
Modified: box/trunk/test/basicserver/testbasicserver.cpp
===================================================================
--- box/trunk/test/basicserver/testbasicserver.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/basicserver/testbasicserver.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -185,7 +185,7 @@
{
static ConfigurationVerifyKey verifyserverkeys[] =
{
- SERVERSTREAM_VERIFY_SERVER_KEYS(ConfigurationVerifyKey::NoDefaultValue) // no default listen addresses
+ SERVERSTREAM_VERIFY_SERVER_KEYS(0) // no default addresses
};
static ConfigurationVerify verifyserver[] =
@@ -258,7 +258,7 @@
{
static ConfigurationVerifyKey verifyserverkeys[] =
{
- SERVERTLS_VERIFY_SERVER_KEYS(ConfigurationVerifyKey::NoDefaultValue) // no default listen addresses
+ SERVERTLS_VERIFY_SERVER_KEYS(0) // no default listen addresses
};
static ConfigurationVerify verifyserver[] =
Modified: box/trunk/test/bbackupd/testbbackupd.cpp
===================================================================
--- box/trunk/test/bbackupd/testbbackupd.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/bbackupd/testbbackupd.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -514,8 +514,7 @@
{
// connect and log in
SocketStreamTLS conn;
- conn.Open(context, Socket::TypeINET, "localhost",
- 22011);
+ conn.Open(context, Socket::TypeINET, "localhost", BOX_PORT_BBSTORED);
BackupProtocolClient protocol(conn);
protocol.QueryVersion(BACKUP_STORE_SERVER_VERSION);
std::auto_ptr<BackupProtocolClientLoginConfirmed> loginConf(protocol.QueryLogin(0x01234567, BackupProtocolClientLogin::Flags_ReadOnly));
@@ -608,7 +607,7 @@
std::auto_ptr<BackupProtocolClient> Connect(TLSContext& rContext)
{
sSocket.Open(rContext, Socket::TypeINET,
- "localhost", 22011);
+ "localhost", BOX_PORT_BBSTORED);
std::auto_ptr<BackupProtocolClient> connection;
connection.reset(new BackupProtocolClient(sSocket));
connection->Handshake();
@@ -2560,6 +2559,13 @@
true /* print progress dots */)
== Restore_TargetExists);
+ // Make sure you can't restore to a nonexistant path
+ printf("Try to restore to a path that doesn't exist\n");
+ TEST_THAT(BackupClientRestore(*client, restoredirid,
+ "testfiles/no-such-path/subdir",
+ true /* print progress dots */)
+ == Restore_TargetPathNotFound);
+
// Find ID of the deleted directory
deldirid = GetDirID(*client, "x1", restoredirid);
TEST_THAT(deldirid != 0);
@@ -2572,15 +2578,6 @@
true /* deleted files */)
== Restore_Complete);
- // Make sure you can't restore to a nonexistant path
- printf("\n\n==== Try to restore to a path "
- "that doesn't exist\n");
- fflush(stdout);
- TEST_THAT(BackupClientRestore(*client, restoredirid,
- "testfiles/no-such-path/subdir",
- true /* print progress dots */)
- == Restore_TargetPathNotFound);
-
// Log out
client->QueryFinished();
sSocket.Close();
Modified: box/trunk/test/bbackupd/testfiles/bbackupd-temploc.conf
===================================================================
--- box/trunk/test/bbackupd/testfiles/bbackupd-temploc.conf 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/bbackupd/testfiles/bbackupd-temploc.conf 2008-04-04 21:59:29 UTC (rev 2124)
@@ -8,7 +8,6 @@
DataDirectory = testfiles/bbackupd-data
StoreHostname = localhost
-StorePort = 22011
AccountNumber = 0x01234567
UpdateStoreInterval = 3
Modified: box/trunk/test/bbackupd/testfiles/bbackupd.conf.in
===================================================================
--- box/trunk/test/bbackupd/testfiles/bbackupd.conf.in 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/bbackupd/testfiles/bbackupd.conf.in 2008-04-04 21:59:29 UTC (rev 2124)
@@ -8,7 +8,6 @@
DataDirectory = testfiles/bbackupd-data
StoreHostname = localhost
-StorePort = 22011
AccountNumber = 0x01234567
UpdateStoreInterval = 3
Modified: box/trunk/test/bbackupd/testfiles/bbstored.conf
===================================================================
--- box/trunk/test/bbackupd/testfiles/bbstored.conf 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/bbackupd/testfiles/bbstored.conf 2008-04-04 21:59:29 UTC (rev 2124)
@@ -9,7 +9,7 @@
Server
{
PidFile = testfiles/bbstored.pid
- ListenAddresses = inet:localhost:22011
+ ListenAddresses = inet:localhost
CertificateFile = testfiles/serverCerts.pem
PrivateKeyFile = testfiles/serverPrivKey.pem
TrustedCAsFile = testfiles/serverTrustedCAs.pem
Modified: box/trunk/test/common/testcommon.cpp
===================================================================
--- box/trunk/test/common/testcommon.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/common/testcommon.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -57,15 +57,15 @@
ConfigurationVerifyKey verifykeys1_1_1[] =
{
- ConfigurationVerifyKey("bing", ConfigTest_Exists),
- ConfigurationVerifyKey("carrots", ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("terrible", ConfigTest_Exists | ConfigTest_LastEntry)
+ {"bing", 0, ConfigTest_Exists, 0},
+ {"carrots", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"terrible", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
ConfigurationVerifyKey verifykeys1_1_2[] =
{
- ConfigurationVerifyKey("fish", ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("string", ConfigTest_Exists | ConfigTest_LastEntry)
+ {"fish", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"string", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
@@ -89,15 +89,15 @@
ConfigurationVerifyKey verifykeys1_1[] =
{
- ConfigurationVerifyKey("value", ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("string1", ConfigTest_Exists),
- ConfigurationVerifyKey("string2", ConfigTest_Exists | ConfigTest_LastEntry)
+ {"value", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"string1", 0, ConfigTest_Exists, 0},
+ {"string2", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
ConfigurationVerifyKey verifykeys1_2[] =
{
- ConfigurationVerifyKey("carrots", ConfigTest_Exists | ConfigTest_IsInt),
- ConfigurationVerifyKey("string", ConfigTest_Exists | ConfigTest_LastEntry)
+ {"carrots", 0, ConfigTest_Exists | ConfigTest_IsInt, 0},
+ {"string", 0, ConfigTest_Exists | ConfigTest_LastEntry, 0}
};
ConfigurationVerify verifysub1[] =
@@ -120,15 +120,14 @@
ConfigurationVerifyKey verifykeys1[] =
{
- ConfigurationVerifyKey("notExpected", 0),
- ConfigurationVerifyKey("HasDefaultValue", 0, "Lovely default value"),
- ConfigurationVerifyKey("MultiValue", ConfigTest_MultiValueAllowed),
- ConfigurationVerifyKey("BoolTrue1", ConfigTest_IsBool),
- ConfigurationVerifyKey("BoolTrue2", ConfigTest_IsBool),
- ConfigurationVerifyKey("BoolFalse1", ConfigTest_IsBool),
- ConfigurationVerifyKey("BoolFalse2", ConfigTest_IsBool),
- ConfigurationVerifyKey("TOPlevel",
- ConfigTest_LastEntry | ConfigTest_Exists)
+ {"notExpected", 0, 0, 0},
+ {"HasDefaultValue", "Lovely default value", 0, 0},
+ {"MultiValue", 0, ConfigTest_MultiValueAllowed, 0},
+ {"BoolTrue1", 0, ConfigTest_IsBool, 0},
+ {"BoolTrue2", 0, ConfigTest_IsBool, 0},
+ {"BoolFalse1", 0, ConfigTest_IsBool, 0},
+ {"BoolFalse2", 0, ConfigTest_IsBool, 0},
+ {"TOPlevel", 0, ConfigTest_LastEntry | ConfigTest_Exists, 0}
};
ConfigurationVerify verify =
Modified: box/trunk/test/compress/testcompress.cpp
===================================================================
--- box/trunk/test/compress/testcompress.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/compress/testcompress.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -90,8 +90,7 @@
// Check sizes
TEST_THAT(poutput->GetSize() < source.GetSize());
- BOX_TRACE("compressed size = " << poutput->GetSize() <<
- ", source size = " << source.GetSize());
+ TRACE2("compressed size = %d, source size = %d\n", poutput->GetSize(), source.GetSize());
// Decompress the data
{
Modified: box/trunk/test/raidfile/testraidfile.cpp
===================================================================
--- box/trunk/test/raidfile/testraidfile.cpp 2008-04-04 20:22:29 UTC (rev 2123)
+++ box/trunk/test/raidfile/testraidfile.cpp 2008-04-04 21:59:29 UTC (rev 2124)
@@ -622,8 +622,7 @@
TEST_THAT(n2 != n3);
TEST_THAT(n1 != n3);
TEST_THAT(n1 == n4); // ie wraps around
- BOX_TRACE("Gen paths = '" << n1 << "', '" << n2 <<
- "', '" << n3);
+ TRACE3("Gen paths= '%s','%s',%s'\n", n1.c_str(), n2.c_str(), n3.c_str());
}
// Create a RaidFile
More information about the Boxbackup-commit
mailing list