diff options
Diffstat (limited to 'bin')
-rw-r--r-- | bin/bbackupd/BackupClientContext.cpp | 9 | ||||
-rw-r--r-- | bin/bbackupd/BackupClientContext.h | 2 | ||||
-rw-r--r-- | bin/bbackupd/BackupClientDirectoryRecord.cpp | 7 | ||||
-rw-r--r-- | bin/bbackupd/BackupDaemon.cpp | 22 | ||||
-rw-r--r-- | bin/bbackupd/Win32ServiceFunctions.cpp | 6 | ||||
-rwxr-xr-x | bin/bbackupd/bbackupd-config.in | 2 | ||||
-rw-r--r-- | bin/bbackupquery/BackupQueries.cpp | 41 | ||||
-rw-r--r-- | bin/bbackupquery/bbackupquery.cpp | 8 | ||||
-rw-r--r-- | bin/bbstoreaccounts/bbstoreaccounts.cpp | 50 | ||||
-rw-r--r-- | bin/bbstored/BBStoreDHousekeeping.cpp | 3 | ||||
-rw-r--r-- | bin/bbstored/BackupContext.cpp | 3 | ||||
-rwxr-xr-x | bin/bbstored/bbstored-config.in | 2 |
12 files changed, 82 insertions, 73 deletions
diff --git a/bin/bbackupd/BackupClientContext.cpp b/bin/bbackupd/BackupClientContext.cpp index 4b4efd90..146f7cb8 100644 --- a/bin/bbackupd/BackupClientContext.cpp +++ b/bin/bbackupd/BackupClientContext.cpp @@ -44,6 +44,7 @@ BackupClientContext::BackupClientContext BackupDaemon &rDaemon, TLSContext &rTLSContext, const std::string &rHostname, + int Port, int32_t AccountNumber, bool ExtendedLogging, bool ExtendedLogToFile, @@ -52,6 +53,7 @@ BackupClientContext::BackupClientContext : mrDaemon(rDaemon), mrTLSContext(rTLSContext), mHostname(rHostname), + mPort(Port), mAccountNumber(AccountNumber), mpSocket(0), mpConnection(0), @@ -129,7 +131,8 @@ BackupProtocolClient &BackupClientContext::GetConnection() mHostname << "'..."); // Connect! - mpSocket->Open(mrTLSContext, Socket::TypeINET, mHostname.c_str(), BOX_PORT_BBSTORED); + mpSocket->Open(mrTLSContext, Socket::TypeINET, + mHostname.c_str(), mPort); // And create a procotol object mpConnection = new BackupProtocolClient(*mpSocket); @@ -146,8 +149,8 @@ BackupProtocolClient &BackupClientContext::GetConnection() if (!mpExtendedLogFileHandle) { - BOX_ERROR("Failed to open extended log " - "file: " << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to open extended " + "log file: " << mExtendedLogFile); } else { diff --git a/bin/bbackupd/BackupClientContext.h b/bin/bbackupd/BackupClientContext.h index 152d8556..1504cc72 100644 --- a/bin/bbackupd/BackupClientContext.h +++ b/bin/bbackupd/BackupClientContext.h @@ -41,6 +41,7 @@ public: BackupDaemon &rDaemon, TLSContext &rTLSContext, const std::string &rHostname, + int32_t Port, int32_t AccountNumber, bool ExtendedLogging, bool ExtendedLogToFile, @@ -201,6 +202,7 @@ private: BackupDaemon &mrDaemon; TLSContext &mrTLSContext; std::string mHostname; + int mPort; int32_t mAccountNumber; SocketStreamTLS *mpSocket; BackupProtocolClient *mpConnection; diff --git a/bin/bbackupd/BackupClientDirectoryRecord.cpp b/bin/bbackupd/BackupClientDirectoryRecord.cpp index 0a0703c2..47094af3 100644 --- a/bin/bbackupd/BackupClientDirectoryRecord.cpp +++ b/bin/bbackupd/BackupClientDirectoryRecord.cpp @@ -1014,7 +1014,8 @@ bool BackupClientDirectoryRecord::UpdateItems(BackupClientDirectoryRecord::SyncP // Delete the pending entries, if the map is entry if(mpPendingEntries != 0 && mpPendingEntries->size() == 0) { - TRACE1("Deleting mpPendingEntries from dir ID %lld\n", mObjectID); + BOX_TRACE("Deleting mpPendingEntries from dir ID " << + BOX_FORMAT_OBJECTID(mObjectID)); delete mpPendingEntries; mpPendingEntries = 0; } @@ -1249,8 +1250,8 @@ bool BackupClientDirectoryRecord::UpdateItems(BackupClientDirectoryRecord::SyncP rLocalPath, dirname.GetClearFilename()); - TRACE1("Deleted directory record for " - "%s\n", name.c_str()); + BOX_TRACE("Deleted directory record " + "for " << name); } } } diff --git a/bin/bbackupd/BackupDaemon.cpp b/bin/bbackupd/BackupDaemon.cpp index 059cda38..b1dc4832 100644 --- a/bin/bbackupd/BackupDaemon.cpp +++ b/bin/bbackupd/BackupDaemon.cpp @@ -958,6 +958,7 @@ void BackupDaemon::Run2() *this, tlsContext, conf.GetKeyValue("StoreHostname"), + conf.GetKeyValueInt("StorePort"), conf.GetKeyValueInt("AccountNumber"), conf.GetKeyValueBool("ExtendedLogging"), conf.KeyExists("ExtendedLogFile"), @@ -1812,10 +1813,9 @@ void BackupDaemon::SetupLocations(BackupClientContext &rClientContext, const Con if(::statfs(apLoc->mPath.c_str(), &s) != 0) #endif // HAVE_STRUCT_STATVFS_F_MNTONNAME { - BOX_WARNING("Failed to stat location " + BOX_LOG_SYS_WARNING("Failed to stat location " "path '" << apLoc->mPath << - "' (" << strerror(errno) << - "), skipping location '" << + "', skipping location '" << apLoc->mName << "'"); continue; } @@ -2189,9 +2189,8 @@ void BackupDaemon::CommitIDMapsAfterSync() #endif if(::rename(newmap.c_str(), target.c_str()) != 0) { - BOX_ERROR("failed to rename ID map: " << newmap - << " to " << target << ": " - << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to rename ID map: " << + newmap << " to " << target); THROW_EXCEPTION(CommonException, OSFileError) } } @@ -3055,9 +3054,10 @@ bool BackupDaemon::DeleteStoreObjectInfo() const // 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("Store object info file 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("StoreObjectInfoFile 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 @@ bool BackupDaemon::DeleteStoreObjectInfo() const // Actually delete it if(::unlink(storeObjectInfoFile.c_str()) != 0) { - BOX_ERROR("Failed to delete the old store object info file: " - << storeObjectInfoFile << ": "<< strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to delete the old " + "StoreObjectInfoFile: " << storeObjectInfoFile); return false; } diff --git a/bin/bbackupd/Win32ServiceFunctions.cpp b/bin/bbackupd/Win32ServiceFunctions.cpp index a7bf6bd9..53be3bc7 100644 --- a/bin/bbackupd/Win32ServiceFunctions.cpp +++ b/bin/bbackupd/Win32ServiceFunctions.cpp @@ -207,8 +207,8 @@ int InstallService(const char* pConfigFileName, const std::string& rServiceName) if (emu_stat(pConfigFileName, &st) != 0) { - BOX_ERROR("Failed to open configuration file '" << - pConfigFileName << "': " << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to open configuration file " + "'" << pConfigFileName << "'"); return 1; } @@ -221,7 +221,7 @@ int InstallService(const char* pConfigFileName, const std::string& rServiceName) } } - SC_HANDLE scm = OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE); + SC_HANDLE scm = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE); if (!scm) { diff --git a/bin/bbackupd/bbackupd-config.in b/bin/bbackupd/bbackupd-config.in index ee6a745d..925dcc3e 100755 --- a/bin/bbackupd/bbackupd-config.in +++ b/bin/bbackupd/bbackupd-config.in @@ -26,7 +26,7 @@ Parameters: explicitly, using bbackupctl sync account-num (hexdecimal) and server-hostname are supplied by the server administrator - working-dir is usually @localstatedir_expanded@ + working-dir is usually @localstatedir_expanded@/bbackupd backup directories is list of directories to back up __E diff --git a/bin/bbackupquery/BackupQueries.cpp b/bin/bbackupquery/BackupQueries.cpp index b6984641..0faa4770 100644 --- a/bin/bbackupquery/BackupQueries.cpp +++ b/bin/bbackupquery/BackupQueries.cpp @@ -27,6 +27,8 @@ #include <set> #include <limits> +#include <iostream> +#include <ostream> #include "BackupQueries.h" #include "Utils.h" @@ -810,8 +812,8 @@ void BackupQueries::CommandChangeLocalDir(const std::vector<std::string> &args) } else { - BOX_ERROR("Error changing to directory '" << - args[0] << ": " << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to change to directory " + "'" << args[0] << "'"); } SetReturnCode(COMMAND_RETURN_ERROR); @@ -822,8 +824,7 @@ void BackupQueries::CommandChangeLocalDir(const std::vector<std::string> &args) char wd[PATH_MAX]; if(::getcwd(wd, PATH_MAX) == 0) { - BOX_ERROR("Error getting current directory: " << - strerror(errno)); + BOX_LOG_SYS_ERROR("Error getting current directory"); SetReturnCode(COMMAND_RETURN_ERROR); return; } @@ -1399,9 +1400,8 @@ void BackupQueries::Compare(int64_t DirID, const std::string &rStoreDir, const s } else { - BOX_WARNING("Failed to access local directory '" << - localDirDisplay << ": " << strerror(errno) << - "'."); + BOX_LOG_SYS_WARNING("Failed to access local directory " + "'" << localDirDisplay << "'"); rParams.mUncheckedFiles ++; } return; @@ -1449,8 +1449,8 @@ void BackupQueries::Compare(int64_t DirID, const std::string &rStoreDir, const s DIR *dirhandle = ::opendir(rLocalDir.c_str()); if(dirhandle == 0) { - BOX_WARNING("Failed to open local directory '" << - localDirDisplay << "': " << strerror(errno)); + BOX_LOG_SYS_WARNING("Failed to open local directory '" << + localDirDisplay << "'"); rParams.mUncheckedFiles ++; return; } @@ -1518,8 +1518,8 @@ void BackupQueries::Compare(int64_t DirID, const std::string &rStoreDir, const s // Close directory if(::closedir(dirhandle) != 0) { - BOX_ERROR("Failed to close local directory '" << - localDirDisplay << "': " << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to close local directory " + "'" << localDirDisplay << "'"); } dirhandle = 0; @@ -2158,22 +2158,9 @@ void BackupQueries::CommandUsage() // -------------------------------------------------------------------------- void BackupQueries::CommandUsageDisplayEntry(const char *Name, int64_t Size, int64_t HardLimit, int32_t BlockSize) { - // 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); + std::cout << FormatUsageLineStart(Name) << + FormatUsageBar(Size, Size * BlockSize, HardLimit * BlockSize) << + std::endl; } diff --git a/bin/bbackupquery/bbackupquery.cpp b/bin/bbackupquery/bbackupquery.cpp index 4b97409f..b38821c1 100644 --- a/bin/bbackupquery/bbackupquery.cpp +++ b/bin/bbackupquery/bbackupquery.cpp @@ -174,8 +174,8 @@ int main(int argc, const char *argv[]) logFile = ::fopen(optarg, "w"); if(logFile == 0) { - BOX_ERROR("Failed to open log file '" << - optarg << "': " << strerror(errno)); + BOX_LOG_SYS_ERROR("Failed to open log file " + "'" << optarg << "'"); } break; @@ -260,7 +260,9 @@ int main(int argc, const char *argv[]) // 2. Connect to server if(!quiet) BOX_INFO("Connecting to store..."); SocketStreamTLS socket; - socket.Open(tlsContext, Socket::TypeINET, conf.GetKeyValue("StoreHostname").c_str(), BOX_PORT_BBSTORED); + socket.Open(tlsContext, Socket::TypeINET, + conf.GetKeyValue("StoreHostname").c_str(), + conf.GetKeyValueInt("StorePort")); // 3. Make a protocol, and handshake if(!quiet) BOX_INFO("Handshake with store..."); diff --git a/bin/bbstoreaccounts/bbstoreaccounts.cpp b/bin/bbstoreaccounts/bbstoreaccounts.cpp index a2155abe..6579f286 100644 --- a/bin/bbstoreaccounts/bbstoreaccounts.cpp +++ b/bin/bbstoreaccounts/bbstoreaccounts.cpp @@ -13,8 +13,11 @@ #include <stdio.h> #include <sys/types.h> #include <limits.h> -#include <vector> + #include <algorithm> +#include <iostream> +#include <ostream> +#include <vector> #include "BoxPortsAndFiles.h" #include "BackupStoreConfigVerify.h" @@ -62,16 +65,10 @@ int BlockSizeOfDiscSet(int DiscSet) return controller.GetDiscSet(DiscSet).GetBlockSize(); } -std::string BlockSizeToString(int64_t Blocks, int DiscSet) +std::string BlockSizeToString(int64_t Blocks, int64_t MaxBlocks, int DiscSet) { - // Work out size in Mb. - double mb = (Blocks * BlockSizeOfDiscSet(DiscSet)) / (1024.0*1024.0); - - // Format string - std::ostringstream buf; - buf << Blocks << " blocks " << std::fixed << std::setprecision(2) << - std::showpoint << "(" << mb << " MB)"; - return buf.str(); + return FormatUsageBar(Blocks, Blocks * BlockSizeOfDiscSet(DiscSet), + MaxBlocks * BlockSizeOfDiscSet(DiscSet)); } int64_t SizeStringToBlocks(const char *string, int DiscSet) @@ -223,15 +220,30 @@ int AccountInfo(Configuration &rConfig, int32_t ID) std::auto_ptr<BackupStoreInfo> info(BackupStoreInfo::Load(ID, rootDir, discSet, true /* ReadOnly */)); // Then print out lots of info - printf(" Account ID: %08x\n", ID); - printf(" Last object ID: %lld\n", info->GetLastObjectIDUsed()); - printf(" Blocks used: %s\n", BlockSizeToString(info->GetBlocksUsed(), discSet).c_str()); - printf(" Blocks used by old files: %s\n", BlockSizeToString(info->GetBlocksInOldFiles(), discSet).c_str()); - printf("Blocks used by deleted files: %s\n", BlockSizeToString(info->GetBlocksInDeletedFiles(), discSet).c_str()); - printf(" Blocks used by directories: %s\n", BlockSizeToString(info->GetBlocksInDirectories(), discSet).c_str()); - printf(" Block soft limit: %s\n", BlockSizeToString(info->GetBlocksSoftLimit(), discSet).c_str()); - printf(" Block hard limit: %s\n", BlockSizeToString(info->GetBlocksHardLimit(), discSet).c_str()); - printf(" Client store marker: %lld\n", info->GetClientStoreMarker()); + 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; return 0; } diff --git a/bin/bbstored/BBStoreDHousekeeping.cpp b/bin/bbstored/BBStoreDHousekeeping.cpp index 16a1432a..4694c0bb 100644 --- a/bin/bbstored/BBStoreDHousekeeping.cpp +++ b/bin/bbstored/BBStoreDHousekeeping.cpp @@ -193,7 +193,8 @@ bool BackupStoreDaemon::CheckForInterProcessMsg(int AccountNum, int MaximumWaitT std::string line; if(mInterProcessComms.GetLine(line, false /* no pre-processing */, MaximumWaitTime)) { - TRACE1("Housekeeping received command '%s' over interprocess comms\n", line.c_str()); + BOX_TRACE("Housekeeping received command '" << line << + "' over interprocess comms"); int account = 0; diff --git a/bin/bbstored/BackupContext.cpp b/bin/bbstored/BackupContext.cpp index f956b1a8..af1c9475 100644 --- a/bin/bbstored/BackupContext.cpp +++ b/bin/bbstored/BackupContext.cpp @@ -382,7 +382,8 @@ int64_t BackupContext::AllocateObjectID() // Mark that the store info should be saved as soon as possible mSaveStoreInfoDelay = 0; - TRACE1("When allocating object ID, found that %lld is already in use\n", id); + BOX_WARNING("When allocating object ID, found that " << + BOX_FORMAT_OBJECTID(id) << " is already in use"); } THROW_EXCEPTION(BackupStoreException, CouldNotFindUnusedIDDuringAllocation) diff --git a/bin/bbstored/bbstored-config.in b/bin/bbstored/bbstored-config.in index 57fa50c6..5ad96d50 100755 --- a/bin/bbstored/bbstored-config.in +++ b/bin/bbstored/bbstored-config.in @@ -196,7 +196,7 @@ TimeBetweenHousekeeping = 900 Server { - PidFile = @localstatedir_expanded@/bbstored.pid + PidFile = @localstatedir_expanded@/run/bbstored.pid User = $username ListenAddresses = inet:$server CertificateFile = $certificate |