wiki:WindowsClientReleases

Windows Client Releases

Build 3005

Released on 2011/10/06. Download here.

Changes since the last release (2631):

  • Add notification about uploading new file attributes. [2633] [2634]
  • Add check for changing file creation times on Windows, to cause the attributes to be uploaded again. [2633]
  • Add listing of attribute modification time to bbackupquery "list -t" command. [2635]
  • Add option to display attribute modification times from additional attributes if available in bbackupquery. [2636]
  • Updated bbackupquery help to list some undocumented options. [2637]
  • Only build the static library part of QDBM, as the default dynamic build doesn't work on OSX and we don't care about the binary tools, thanks to Melissa Jenkins. [2639]
  • First attempt at tab completion for readline/libedit in bbackupquery, with commands and local file names, because it's easy and will help to find compatibility problems. [2641]
  • Add instructions and support for building with readline on Windows. [2642]
  • Detect whether rl_completion_matches or completion_matches is declared by readline headers at configure time, and use the appropriate one in bbackupquery, thanks to Melissa Jenkins. [2643]
  • Add a new exception macro for throwing exceptions that are related to a file but not system errors. [2676]
  • Make TestGetFileSize? take a std::string instead of a char * for C++ style. [2677]
  • Add new exception codes for database errors. [2678]
  • Add header with macros for QDBM error logging. [2679]
  • Don't back up sockets and pipes (on Unix), thanks to Mick Kappenburg for spotting that the fix for Debian bug was incorrect. [2693]
  • Auto-detect the correct location for bbackupd.conf on Windows based on where bbackupd.exe is. [2694] [2695]
  • Add support for account numbers greater than 0x7fffffff without wrapping. [2696]
  • Initial support for command and local file completion with readline. [2697]
  • Improve bbackupquery command-line help. [2697]
  • Add -E option to disable readline/editline as it causes problems with entering international characters on some systems (see #73). [2697] [2698]
  • Add inline helpers to check whether a directory entry is a file, directory, old or deleted. [2700]
  • Reduce severity of error message when interrupted by a signal while waiting for an incoming connection. [2711]
  • Log the invalid log level provided on the command line, for debugging. [2725]
  • Allow restoring directories with a single argument, using the remote name as the local destination name also. [2754]
  • Implement basic readline/editline completion of remote file and directory names, object IDs, and command options. [2760]
  • Finish support for -i option in bbackupquery, thanks to Achim for noticing. [2783]
  • Quick fix to stop deletion of redundant locations when DeleteRedundantLocationsAfter? is set to zero, which is supposed to mean that it's disabled. [2784]
  • Fix missing closing parenthesis after bbackupquery pwd outputs object ID. [2795]
  • Show the output of "pwd" at NOTICE level, so that it gets displayed in release builds as well. [2797]
  • Fix large file issues on Windows, thanks to Charles Lecklider. [2799]
  • Log the total number of bytes uploaded to the server for each file. [2804]
  • Add log file logging to all daemons. [2806] [2807]
  • Improve accuracy and utility of FileStream::StreamClosed?(). [2808]
  • Avoid fatal error caused by recursive logging if we fail to open the file we're supposed to log to. [2809]
  • Fix date overflow in new CA certificates, make them valid until 2038, thanks to JP Vossen for reporting this. [2819]
  • Log the path, name and size of files being restored at TRACE level for users wanting more detailed restore output. [2828]
  • Disable printing dots when logging at TRACE level is enabled. [2828]
  • Warn rather than failing to restore when the file attributes could not be restored. [2828]
  • Add a macro for logging timespec structures. [2830]
  • Log the adjusted time, not the unadjusted one, as it's the adjusted time that may cause an error if it's invalid. [2831]
  • Update instructions for OpenSSL 1.0.0a and PCRE 8.10. [2832]
  • Instruct users to install PCRE in the MinGW cross-compiler's directory instead of /usr/{lib,include}/mingw, as it's more standard. [2832]
  • Fix syslog of longer messages on Windows. [2833]
  • Fix reported store file name and reported side of local missing files. [2834]
  • Update build instructions for latest Cygwin, OpenSSL 1.0.0c, PCRE 8.11, and add download link and license notes for readline. [2842]
  • Add a configuration option for upload rate limiting, MaxUploadRate?. [2844] [2847] [2848] [2862]
  • Add a new notification function for local file access errors, to distinguish them from download errors (remote server errors). [2851]
  • Update build docs to show how to build with readline using pdcurses on Windows. [2863] [2864]
  • Update to OpenSSL 1.0.0d and PCRE 8.12. [2865]
  • Instruct to build PCRE with shared libs disabled, to avoid dependency on DLL in a directory not in the path. [2868]
  • Fix crash on unknown commands when readline is not supported by bbackupqyuery, thanks to Achim J Latz for reporting and helping to debug. [2869]
  • Remove RemoteControl?.exe from Box Backup. [2871]
  • Define WINVER and _WIN32_WINNT to Windows 2000 to avoid importing WSAPoll from winsock2.h, which conflicts with our definition of struct pollfd, on Windows Vista and above. [2873]
  • Add a solution and project for building on MSVC 2010. [2880]
  • Add experimental support for backing up open files using Volume Shadow Services (VSS) on Windows, only in MSVC builds, not these builds! [2900] [2901] [2902] [2904] [2906] [2907] [2909] [2910] [2933] [2986] [2992]
  • Move backupstore common code to its own library, libbackupstore. [2893]
  • Substitute variables in boxbackup.mpi.in to build a valid InstallJammer? config file for use with MSVC. [2925] [2931]
  • Remove getpid() emulation now that it's included in the SDK, which causes a conflict. [2929] [2930]
  • Refactor GetLines? to share common code, fix whitespace removal at end of line. [2935]
  • Major refactoring to make lib/backupclient depend on lib/backupstore rather than the other way around. [2945] [2963] [2964] [2969]
  • Refine CPU detection code in BoxPlatform? to allow use of multiple processors on systems other than Darwin, thanks to James O'Gorman. [2951]
  • Blind fix for displaying error message as well as code when emu unicode conversion fails. [2962]
  • Fix type aliasing problems detected by GCC 4.4. [2972]
  • Log the number of files uploaded and directories created, as requested by Achim, closes #61. [2981]
  • Log net traffic (in-out) in bbstored, as requested by Pete Jalajas. [2982]
  • Log failure to convert log string to console encoding on Windows. [2984]
  • Fix potential conflict between WINVERs in Timers. [2991]
  • Use "more standard" Windows API functions FindFirstFileW and FindNextFileW for directory enumeration instead of _wfindfirst and _wfindnext. [2992]
  • Ignore reparse points when enumerating directories to avoid infinite loops. [2992]
  • Flush stream after restore fails, so that bbackupquery is still usable, thanks to Sune Molgaard for reporting. [3002]

Build 2631

Released on 2010/02/24. Download here.

Changes since the last release (2614):

  • Update banner to say 2003-2010. [2616]
  • Log the mismatched timestamps of files during compare in a human-readable format as well as the raw numbers. [2618]
  • Use existing helper functions to convert box_time_t to seconds, rather than just arbitrarily dividing by 1000000. [2618]
  • Honour CFLAGS in QDBM so that Cygwin/MinGW builds work. [2623]
  • Move the test for excluded dirs inside the emu_lstat failure, as otherwise we don't know whether the file that we couldn't stat was really a file or a directory, so we can't know whether it should have

been excluded, and the old code allowed dir excludes to make files appear not to exist locally, and therefore tests to fail. [2625]

  • Remove -O3 -fomit-frame-pointer from qdbm gcc options, as they make debugging impossible. [2627]
  • Add some exceptions for use by database handling classes. [2630]
  • Remove all references to bdb databases, use QDBM instead. [2631]

Build 2614

Released on 2010/02/17. Download here.

Changes since the last release (2604):

  • Support throwing exception with more complex stringstream-formatted messages. [2606]
  • Add support for linking to qdbm and other imported libraries with external build systems. [2607]
  • Rewrite some library dependency code for readability. [2607]
  • Remove the obsolete win32 InstallShield? installer script. [2609]
  • Add qdbm to library dependencies for bbackupd. [2610]
  • Move modification time functions out-of-line to help with debugging them. [2612]
  • Add overloaded hton() and ntoh() functions for file attribute comparison macro. [2613]
  • Convert attributes to host byte order when reporting errors. [2614]
  • Convert timestamps to host byte order before dividing from usecs to secs, store in uint64_t variables to avoid truncation, and display in host byte order. [2614]

Build 2604

Released on 2010/02/11. Download here.

Changes since the last release (2520):

  • Improve debugging when opening temp file fails, by calling the filename constructor of FileStream?. [2526]
  • Log the file name that could not be opened, even for access denied errors. [2527]
  • Ignore stat() errors on excluded directories. [2528]
  • Don't try to stat excluded directories, thanks to Ben Bennett. [2601] [2602]
  • Make FileExists? take a std::string instead of a const char * for C++ style. [2532] [2533]
  • Make NamedLock? take a std::string instead of a char pointer for C++ style. [2536]
  • Fix compile failure reported by Achim. [2548]
  • Add handling of relative paths to emu.cpp's openfile(), needed to handle relative paths in test configuration on Windows. [2549]
  • Add debugging for child processes terminating normally or abnormally, thanks to Brendon Baumgartner. [2587]
  • Add location of config file as an additional parameter to the SyncAllowScript? and the NotifyScript, thanks to Achim J. Latz. [2588]
  • Add missing space before file age in not uploading log message. [2589]
  • Add QDBM 1.8.77 dbm-compatible database library to sources. [2590]
  • Switch license to GPL for backup parts, and dual GPL/BSD for common parts, as discussed and agreed in this thread. [2596]
  • Make LocalProcessStream? constructor take a std::string& for C++ style. [2597]
  • Create a new license that allows Box Backup to be linked with OpenSSL and Microsoft VSS SDK. [2600]
  • Allow logging any std::ostringstream expression in THROW_EXCEPTION_MESSAGE, fixes compile error. [2603]
  • Log more detailed info about backup comparison failures, for debugging. [2604]
  • Enable -V option in bbackupquery, and document that -q, -v, -V and -W<level> are allowed in the command-line help. [2604]

Build 2520

Released on 2009/04/26. Download here.

Changes since the last release (2368):

  • Use the same ostringstream formatting for protocol logging to file that we use for standard logging, to fix 64bit platform warnings reported by Matt Brown. [2369] [2370] [2371] [2372]
  • Additional debugging for value format error reported by Scott McNee?. [2376]
  • Fix NotifyScript syntax error reported by Roy. [2377]
  • Ignore "backup-ok" messages in NotifyScript by default. [2377]
  • Switch from MinGW getopt to our BSD implementation. [2388]
  • Improve reporting of errors from openfile(). [2389] [2390] [2391]
  • Fix appending to log files on Windows. [2392]
  • Add support for using the logging framework to log (most) bbackupquery output to a file, with its own verbosity level. [2393]
  • Fix missing parentheses on stored file ID messages. [2394]
  • Fix incorrect shortening of file IDs on Windows to 16 bits, leading to many "file moved" messages and potential wrong file moves/renames on the store. Thanks to Roy for pointing it out and helping to debug it. [2395]
  • Reduce severity of some log messages about notifying system administrator (it's not an error to have no NotifyScript). [2396]
  • Grammar fix in SSL error message when SSL library initialisation fails. [2397]
  • Catch exceptions from BackupClientFileAttributes::ReadAttributes? during backup, and report which file caused them. [2401]
  • If we cannot read the attributes of a directory to find its inode number, assume that it hasn't been renamed. [2401]
  • Change "Storing uploaded file ID" and "Found conflicting parent ID" messages not to print the path, which duplicates data earlier in the same message. [2401]
  • Fix crash when freebsd (maybe *bsd) returns ECONNRESET on close(), which presumably means that the socket is already closed, causing bbackupd test to fail. Thanks to Victor Meirans for reporting the problem. [2451]
  • Fix use of encrypted filename in deleted file message, thanks to Kenny Millington for reporting. [2481]
  • Add date to file logger, as requested by Kenny Millington. [2482]
  • Include generated HTML documentation in parcel, and remove troff manual pages. [2518]

Build 2368

Released on 2008/11/03. Download here. Built from the monthly snapshot 2368 for 2008/10.

Changes since the last release (1857):

  • Fix crash when NotifyScript is called for BackupStart? or BackupFinish? [1862]
  • Allow configuration of the time to delete redundant store locations [1863]
  • Revert from hex to decimal default format after logging an account number [1864]
  • Log the name of missing configuration keys before throwing exception [1865]
  • Revert to decimal properly, and also after logging an Object ID [1869]
  • Fix double backslashes [1870]
  • Compile fix for MSVC, thanks Gary [1861]
  • Re-merge the good bits of [1873] with James' suggested improvements.
  • Fix compare output for missing local files which are on the store [1911]
  • Receiving a connection is not an error [1912]
  • Ignore time differences less than 1 second when comparing attributes, as not all filesystems can store times that accurately [1914]
  • Log an error if we fail to open the lockfile [1915]
  • Unlink returns 0 on success, not on error [1919] [1921]
  • Ensure that restore failure sets the return code from bbackupquery [1926]
  • Make ExtendedLogging? use the logging framework so that we can view the logs on the console along with other debug output [1937]
  • Enable TRACE logging in release builds, but make it really cheap when disabled [1938]
  • Use new logging framework for tracing diffs [1940]
  • Log each block found and each false match at DEBUG level [1940]
  • Change some TRACEx macros to BOX_TRACE [1995]
  • Allow logging with microsecond timestamps [2001]
  • Add -U option to enable logging microsecond timestamps [2002]
  • Don't log our own timestamp now that Logging can do it for us with microsecond precision [2003]
  • Update copyright to 2008 [2030] [2033]
  • Don't warn about mount points which are excluded, thanks to Matt Brown [2041]
  • Update version on MSVC config [2067]
  • Add support for microsecond timestamps and PID logging on console log for daemons [2081]
  • Use logging framework for streaming messages [2084]
  • Log protocol errors at WARNING level [2084]
  • Always add file size to timestamp in release mode [2085]
  • Improve error messages when loading SSL key files fails [2090]
  • Disable -P option and showing PID in Logging on Windows [2092]
  • Add support for logging just to syslog (not console) at a given priority [2102]
  • Only log daemon banner to syslog, not to console, as this is probably what users expect (and they have no way to control verbosity on the console this early) [2103]
  • Disable WSACleanup() in bbackupquery as I get an abnormal program termination on it during testbbackupd [2104]
  • Ignore ERR_NO_DATA while writing to control socket on Windows, as it just means that the Pope is being closed [2105]
  • Use logging framework rather than printf to log when messages are sent to the control client [2109]
  • Add the -K option to Daemons on Windows to keep them quiet even though they don't fork by themselves. This option is normally only useful when running the daemon in a test [2110] [2211]
  • Reduce log level of message from server child from WARNING to NOTICE, as it's just the IP and port of the remote side of the connection [2114]
  • Improve logging with macros that consistently output strerror(errno) and errno, replacing almost all use of strerror() in the main code [2115]
  • Log a more detailed error message before throwing an exception for some more system call failures [2115]
  • Allow configuration of the server port that the client will connect to (bbackupd and bbackupquery) [2116]
  • Redesign ConfigurationVerify? to use classes instead of structs [2116]
  • Close after logging socket error, so that we don't lose errno [2117]
  • Replace all remaining use of TRACEx() macros with logging framework [2119]
  • Make usage output (from bbstoreaccounts info and bbackupquery usage) consistent and easier to read, with blocks, B/kB/MB/GB, % and an ASCII bar graph [2121] [2139]
  • Reset getopt on windows when parsing second set of options [2130]
  • Close process token in EnableBackupRights?(), thanks Charles [2132]
  • Improve error messages in EnableBackupRights?() when failing to enable the backup privilege [2132]
  • Use file size returned by GetFileInformationByHandle? in emu_fstat instead of calling GetFileSizeEx?(), thanks Charles [2132]
  • Convert UTF-8 to Unicode for logging in Windows Event Log, so that international paths and filenames are displayed correctly [2133] [2134]
  • Check the return code from system commands in bbackupquery, and if not zero, give a warning and set the bbackupquery return code to COMMAND_RETURN_ERROR [2142]
  • Check for Restore_TargetPathNotFound on all platforms as it's not specific to Windows [2142]
  • Improve LogAllFileAccess logging by making the simple case (file not changed) easier to read [2143]
  • Fix crash when notifying sysadmin of an invalid event code [2148]
  • Disable some debug logging [2148]
  • Fix typo [2155]
  • Add restore -f option to force restore to continue after an error [2157]
  • Catch server errors when listing a directory in bbackupquery [2158]
  • Add backtrace on exception in release builds [2167] [2168] [2169]
  • Add a GetMessage?() method to Protocol objects to return a stringified message as a string [2172]
  • Move loading configuration into a separate method [2177]
  • Add -W<level> option to set warning level explicitly [2177]
  • Demangle C++ names in backtrace on GCC using C++ ABI routines [2178]
  • Catch exception on reading a directory that doesn't exist, and return a protocol error message instead [2179]
  • Shorten names used by daemons in logging [2180]
  • Track and log file deletions by name [2181]
  • Split crypto init and file sync process into its own method, to reduce call depth and facilitate calling in process from tests [2181]
  • Differentiate between 3 uses of stat in BackupClientDirectoryRecord? by renaming the structures [2181]
  • Use stat instead of lstat when checking the filesystem that's holding an entity, in case it's a symbolic link to a different filesystem [2181]
  • Add bbackupquery -W<level> option to set explicit warning level [2184]
  • Obsolete old (inconsistent) meaning of -q in bbackupquery [2184]
  • Test that reading a nonexistent directory on the server doesn't crash server or client [2184]
  • Test that bbackupd does continue backup run and delete files when storage limit is exceeded [2184]
  • Reset notification state for backup-error after a successful backup, thanks to Wolfgang Trexler [2197]
  • Don't warn about ignoring sockets and FIFOs during backup, thanks to Tollef Fog Heen [2198]
  • Add a function to format a BoxTime? as a human-readable time only (for use in logging) [2203]
  • Use the new time function when generating console log messages [2204]
  • On Windows XP, you can open a process even after it's terminated, to retrieve the exit code, so the check for process liveness has to be modified to make the basicserver test pass [2205]
  • New timer implementation using TimerQueue? on Windows to avoid the need to create and manage a separate thread ourselves [2206]
  • Add getpid() emulation on Windows [2207]
  • Remove Windows limitation on Logging that showing PID was not possible [2208] [2211] [2212]
  • Log error when rename over RaidFile? fails on Windows [2210]
  • Log the error code returned by NotifyScript [2213]
  • Log file uploads at NOTIFY level so that all you need to do to get them (and just them) logged is to set LogAllFileAccess = yes [2214]
  • Name the timers to help with debugging [2215]
  • Log a warning with the file that couldn't be opened and the error code [2217]
  • Add machine-readable output mode (with -m option) to bbstoreaccounts info [2222]
  • Fix redundant logging of command socket messages [2227]
  • Replace manual pointer management with std::auto_ptr [2228]
  • Map ERROR_SHARING_VIOLATION to EBUSY in openfile [2230]
  • Convert console logging output to console encoding on Windows [2231]
  • Move the code that runs a backup with exception handling into its own method, to allow testbbackupd to call it [2236]
  • Add handling of backup-error events to NotifySysAdmin?.vbs [2239]
  • Change FileStream? constructor to take a const std::string& instead of a char array pointer, for C++ style [2243]
  • Interface separation required for Boxi merge [2244] [2245] [2246] [2256] [2257] [2262] [2263]
  • Propagate BackupStoreException::SignalReceived? up to BackupDaemon? to abort the run, rather than treating it as a failure to upload a single file [2247]
  • Handle sysadmin notifications and calculate next sync time in BackupDaemon::RunSyncNow?, moved from RunSyncNowWithExceptionHandling?, which just does the exception handling [2248]
  • Use a std::auto_ptr to hold the Configuration so that we don't have to worry about releasing it ourselves [2252]
  • Remove some #ifdef WIN32 [2252]
  • Add a Flush() method to IOStream to read and discard all remaining data, and a SelfFlushingStream? class which can be used to ensure that protocol streams are always flushed, to avoid breaking protocol [2254]
  • Use SelfFlushingStream? to ensure that protocol streams are always flushed, fixes a problem where local file is not readable during compare, and stream was not flushed, breaking the rest of the compare [2260]
  • Report when directory modification time is later than last sync time as a possible cause of compare failure, just as we do with files [2261]
  • Run housekeeping synchronously on all platforms if daemon is run in single process mode (-D), not just on Windows [2262]
  • Make statistics back into a NOTICE level log again, as they're pretty important and useful [2264]
  • Use SecureZeroMemory? rather than memset() to wipe key material on Windows [2272]
  • Add Windows Installer (InstallJammer?) to version control, thanks Pete Jalajas [2274]
  • Unify program name and console logging tags [2279]
  • Add a new class, Logging::Tagger, which can be used to temporarily add information to the program name, such as the client ID in bbstored [2279]
  • Use logging tagger to identify clients during connections, both in syslog and on the console [2280]
  • Allow stopping housekeeping during a run, between accounts, when the daemon is requested to terminate or to reload its configuration [2281]
  • Add command to undelete a file, to complete the set of commands implemented by the bbstored server [2282]
  • Allow undelete command to work on files as well as directories [2283]
  • Add delete command that works on files and directories [2283]
  • When using bbackupctl, log which command succeeded or failed, rather than just "Succeeded", which is not very helpful in system logs [2284]
  • Prefix event log application name with Box Backup, and remove it from all calls to SetProgramName?, for better consistency on Unix [2285]
  • Make bbstoreaccounts and bbackupctl set their program names for logging [2285]
  • Don't override supplied tag with service name when BackupDaemon? is run as a service [2285] [2286] [2287]
  • Improve wording of control command message [2289]
  • Use named timer for MaximumDiffingTime? [2292]
  • Set console and syslog logging levels rather than global logging level, as we may want to do something different when logging to a file [2293]
  • Replace timer name when assigning from another timer [2295]
  • Log reason for failing to write to a file [2297]
  • Remove #ifdef WIN32 as we now define O_BINARY to 0 on Unixes, so the same code can be used for both [2298]
  • Use named timer for KeepAliveTime [2300]
  • Make upload decision messages (logged with LogAllFileAccess) clearer to help automated log processing [2301]
  • Add file logging support (LogFile and LogFileLevel config options) [2302]
  • Ensure that backup-finish is always called, and add a new event, backup-ok, which is called just before backup-finish when the backup run was successful [2302]
  • Keep track of the last backup status notification sent (excluding backup-start and backup-finish) and send a notification whenever it changes [2302]
  • Add a new boolean option, NotifyAlways?, to override that check and always send notifications to the NotifyScript after every backup run, for notify scripts which do their own state tracking or otherwise require notification on every event [2302]
  • Log creation of directory records and warn on conflicting records [2315]
  • Fix directory record conflicts caused by including the same directory twice [2316]
  • Fix/reduce locked file timing conflict problems [2316]
  • Remove -K option which now does nothing on Windows [2317]
  • Add -Q option which disables all logging instead [2317]
  • Remove Win32 command socket thread, as it has caused too much trouble [2318]
  • Handle command socket on Windows the same as all other platforms, removing #ifdefs from BackupDaemon?. Will replace this thread with regular but not excessive command socket polling using timers in future [2318]
  • Change error messages when command socket comms fail to make them clearer [2318]
  • Remove pcreposix.dll in parcels, now that it's statically linked [2322]
  • Log statistics before BackupFinish? event, so that they can be used in reporting in the NotifyScript [2324]
  • Use Windows Crypto API to seed the random number generator, and remove warning that it hasn't been seeded on Windows [2343]
  • Add -m option to bbackupquery usage command for machine-readable output [2353]

Build 1857

Released on 2007/09/23. Download here.

Changes since the last release (1837):

  • Add James O'Gorman's NotifySysAdmin.vbs script to client parcel on Windows [1838]
  • Update NotifySysAdmin.vbs to send a message to the event log if it fails to send an email (James O'Gorman) [1837]
  • Don't include the install-backup-client script in Windows builds, as it's pretty useless without Cygwin (Pete Jalajas) [1841]
  • Fix the examples in the sample configuration file [1847]
  • Make Windows Service-related command-line processing use getopt, like the other options [1849] [1850] [1852] [1854]
  • Report more useful error messages on connect() failure on Windows [1851]
  • Record the exit status of the daemon when running as a service, and return it to Windows so that Windows doesn't tell the admin that "the service did not report an error" when it stopped unexpectedly [1853]
  • When failing to contact the SCM, report a textual error message as well as the error code [1853]
  • InstallService uses the new "-s" option instead of "--service" on the service command line [1853]
  • Add proper usage information (-h option) in Daemon for all subclasses [1855]
  • Add usage information for service options in BackupDaemon [1855]
  • Use the specified service name when installing and removing the service [1856]
  • Pass the service name on the service command line, and use it for event log messages [1856]
  • Improve timer debugging on Windows [1857]

Build 1837

Released on 2007/09/14. Download here.

Changes since the last release (1822):

  • Support multiple named pipes on Win32.
  • Don't disable logging on Win32 console.
  • Don't initialise the command socket thread (on Win32) until the configuration is known.
  • Commonise some code between Windows and Unix daemon startup.
  • Update bbackupd.conf to match improved comments and default settings in the Unix version generated by bbackupd-config.
  • Don't abort if one of the location paths doesn't exist, just print a warning and continue.
  • Use an auto_ptr to avoid memory leaks when setting up a location fails.

Build 1822

Released on 2007/09/07. Download here.

Changes since the last release (1814):

  • Handle missing NotifyScript configuration key properly. [1817]
  • Report the name of missing configuration keys in an error message. [1818]

Build 1814

Released on 2007/09/07. Download here.

Changes since the last release (1781):

  • Use new logging framework almost everywhere. [1784] [1790] [1806] [1809] [1810] [1811]
  • Don't print syslog messages to the console any more. [1814]
  • Call the notification script whenever backup starts or finishes. [1805]
  • Don't initialise DebugMemLeakFinder? twice when running as a service. [1813]
  • Return a non-zero exit code when running as a service fails. [1813]
  • Fix backup of UNC shares, should allow Box Backup to backup UNC paths when running as a service. [1814]

Build 1781

Released on 2007/07/29. Download here.

Changes since the last release (1692):

  • Add a new -F option for daemons, which runs in the foreground but still accepts multiple connections, unlike -D or SINGLEPROCESS. (cosmetic on Win32, server is single process only) [1741]
  • Log reasons for failure to connect to a socket. [1742]
  • Warn if an exception is thrown, with line number, as this shouldn't be happening on production systems anyway. [1744]
  • Add more debugging checks and messages for location setup error reported by Pete Jalajas (http://lists.warhead.org.uk/pipermail/boxbackup/2007-July/003668.html) [1745]
  • More helpful error messages when location setup failed. [1748]
  • Log more detailed errors when the server returns an error while uploading a file. [1781]

Build 1692

Released on 2007/05/26. Download here.

Changes since the last release (1662):

  • Fix saving and restoring archived state, broken in 1662, thanks Gary! [1672]
  • Fix object use after delete, could crash client, thanks Gary! [1673]
  • Fix regular expression support to work on all platforms, and disabuse HAVE_REGEX_H [1677] [1678] [1682]
  • Internal cleanups, pass std::strings to various classes instead of char arrays [1683] [1684] [1689]
  • All programs use the directory of the executable as the default config file location, instead of the hardcoded "C:\Program Files\Box Backup". Thanks to Paul MacKenzie?, Per Thomsen, Pete Jalajas, Stuart Sanders, Dave Bamford and Gary for pushing me to do this. (fixes #12) [1685] [1686] [1687] [1688] [1690] [1691] [1692]
  • Update copyrights to 2007, thanks Per Thomsen! [1670]

Build 1662

Released on 2007/05/16. Download here.

Changes since the last release (1569):

  • Fix backup, restore and compare of files over 2 GB, hopefully ([1585], [1586], [1587], [1598], [1599], [1621], [1623])
  • Log progress of large file backups at trace level ([1589], [1590])
  • Notify (log) during full file uploads ([1594])
  • Improve error messages in bbackupquery when comparing or getting a file fails with an exception ([1597], [1600])
  • Improve error reporting in bbackupquery ([1638])
  • Initialise logging framework and use for banner in bbackupquery ([1601], [1602])
  • Include LICENSE.txt in binary package, but not Nick's old ReadMe?.txt ([1655])
  • Save unused locations across bbackupd restarts, so that they will be deleted when their time is up, thanks to Gary ([1658], refs #18)
  • Respect server hard limits rather than soft limits, to allow use of zero as a soft limit, thanks to Gary ([1659], [1662], refs #19)
  • Fix restore to a directory under the root, with or without drive letter (c:\test\ or \test\), thanks to Mikael Syska ([1660], [1661])

Build 1569

Released on 2007/04/22. Download here.

Changes since the last release (1516):

  • [1521] Added commentary to RaidFileDoesntExist? exception.
  • [1548] [1549] Use logging framework to log exceptions thrown and stack traces, making them controllable and appear in the Windows event log.
  • [1550] Log event name instead of numeric code when notifying sysadmin in bbackupd.
  • [1551] Add options to log timestamps, and a custom tag, with each message to the console.
  • [1552] Add Daemon -V option, which sets maximum verbosity in one go.
  • [1552] Add Daemon -T option, which adds timestamps to console logs.
  • [1552] Add Daemon -t option, which enabled and sets the tag used on console logs.
  • [1553] Add test --bbackupd-args and --bbstored-args options, which may be used to pass additional command-line parameters to bbackupd and bbstored in some tests.
  • [1553] Add test -t and -T options, which add tags and timestamps to log messages using the logging framework inside the tests themselves.
  • [1554] Use additional arguments from command line options when starting bbackupd and bbstored in test/bbackupd.
  • [1569] Fix crash in bbackupquery when comparing a location whose path ends with a directory separator, accidentally introduced in build 1516.

Build 1516

Released on 2007/04/16. Download here.

Changes since the last release (1280):

  • [1294] Use new logging framework (from chris/merge).
  • [1299] Added detection of reparse points, and treat them like mount points (don't recurse down into them).
  • [1302] Fix memory leaks and false alarms detected by new memory leak code.
  • [1310] Initialise and use logging (from chris/merge).
  • [1311] Fix memory leak (from chris/merge).
  • [1317] Throw Common AccessDenied? instead of Common OSFileOpenError when access to a file is denied, to improve log messages (from chris/merge).
  • [1318] Use gettimeofday() if we have it, to return system time more accurately and avoid spinning (from chris/merge).
  • [1319] Log a warning for exclude entries which end in a path separator and will therefore never match (from chris/merge).
  • [1322] Avoid infinite loops if we can't bind socket, or something else goes wrong and throws an exception before the server starts accepting connections (from chris/merge).
  • [1324] Use new logging framework.
  • [1327] Log excluded directories still present on the server during compare.
  • [1327] Don't recurse into excluded directories during compare.
  • [1327] Document that restore -d restores deleted files inside a not-deleted directory (from chris/merge)
  • [1340] Fix two memory leaks and one buffer overflow in codepage conversion code.
  • [1341] Watch out for our leak tracking data being destroyed and don't crash when subsequent objects are destroyed.
  • [1342] Use Timers to manage diffs and keepalives. Remove signal handler mess from BackupClientContext?.
  • [1342] Send keepalives while scanning a directory, in case it's a very big or slow directory.
  • [1342] Enable keepalives and diff time limits by default, at 60 and 600 seconds respectively.
  • [1342] Add LogAllFileAccess option for verbose file access logging for debugging.
  • [1342] Add support for ExtendedLogFile? directive to write extended (protocol) log to a file (disable ExtendedLogging? unless you want to log to your system logs as well).
  • [1342] Don't delete remote directories just because we can't stat the local one.
  • [1342] Catch failure to read attributes from a location directory and log it rather than aborting the backup run.
  • [1347] Fix potential access beyond end of array in short filenames.
  • [1359] Use logging framework.
  • [1364] Improve GetErrorMessage?() by including the error number/code in the message (helps debugging on foreign language versions of Windows)
  • [1368] [1370] Use logging framework.
  • [1431] Test for expected behaviour when modifying untracked and tracked files without changing their modtime.
  • [1431] Test that bbackupd notifies the sysadmin when throwing an exception.
  • [1433] Trace reasons for uploading (or not) each file.
  • [1433] Add a new notification constant, NotifyEvent_BackupError, for use when an exception occurs during the backup.
  • [1433] Make bbackupd notify sysadmin when an exception occurs during the backup, using this error code, and the notification string "backup-error".
  • [1436] Add emulated rename() with path conversion.
  • [1442] Use memmove() for overlapping buffers (Charles Lecklider).
  • [1449] Initialise logging framework.
  • [1457] Register our event source with the name passed to us, so that it goes into the event logs.
  • [1458] Improve logging of pipe errors by including the error message.
  • [1458] Reinitialise the OVERLAPPED structure each time we start a new overlapped read (Charles Lecklider).
  • [1458] Don't log errors or throw exceptions when we get ERROR_NO_DATA, which just means that the pipe is being closed. Treat it as a normal remote close (EOF) instead.
  • [1458] Don't log an error if DisconnectNamedPipe? tells us that the remote end already closed the pipe (ERROR_PIPE_NOT_CONNECTED)
  • [1459] Use our new ClientException? codes for clock skew and archive problems.
  • [1459] Better handle a case where a force-sync command comes in immediately after (or during) a sync, i.e. less than MinimumFileAge? seconds after the last one. In this case, just move back the syncPeriodStart by 1 second.
  • [1462] Initialise logging framework and set our program name.
  • [1463] Treat ERR_PIPE_NOT_CONNECTED during pipe reads as EOF as well.
  • [1464] Change named pipe from message to byte mode (Charles Lecklider).
  • [1496] Allow '/' as a path separator on Win32.
  • [1512] Add a warning that comparing locations with a final directory separator may fail (Stefan Tauner).
  • [1514] Fix emulated chdir to work with relative paths and with bbackupquery's "sh" command (which doesn't like UNC paths).
  • [1514] Fix rare memory leak.
  • [1516] Return an error code on failure of lcd command.
  • [1516] Return an error code if get command fails due to the file already existing.

Build 1280

Released on 2007/02/10. Download here.

Changes since the last release (1096):

  • [1098] Fix a bug with handling optional files
  • [1099] Add logging in remaining places where Common OSFileOpenError can be thrown
  • [1233] Visual Studio 2005 compile fixes, thanks to Gary
  • [1271] Catch exceptions during restore
  • [1280] Merge in restore logging improvements from merge tree
  • [1283] Don't close the logging socket until we're really finished with it
  • [1284] Catch exceptions thrown by closing the WinNamedPipeStream? during shutdown and suppress them

Build 1096

Released on 2006/10/20. Download here.

Changes since the last release (784):

  • [786] Type conversion fixes suggested by Charles Lecklider (Windows)
  • [787] Fixed coding style and type issues in LocalProcessStream? (Windows)
  • [800] Fixed MakeFullPath?() to handle zero-length directory name
  • [813] Added more friendly error messages for cases pointed out by Pete Jalajas
  • [970] Better description of TLSReadFailed exception
  • [971] More accurate timing, avoids spin loops and eating CPU just before backup starts
  • [972] Avoid memory corruption in memory leak detection code in debug builds
  • [973] Add Access Denied exception (useful for distinguising from OSCommonFileError)
  • [1007] [1008] Build with static pcre library instead of pcreposix.dll
  • [1009] Added support for using Win32 temporary files in server and unit tests
  • [1010] Use INVALID_HANDLE_VALUE instead of NULL to represent invalid file handles under Win32
  • [1011] Added InvisibleTempFileStream? class and unit tests for it
  • [1012] Use InvisibleTempFileStream? instead of FileStream? for temporary files
  • [1017] Simplify code
  • [1021] Log unknown file types as unreadable files
  • [1023] Allow creation of directory records (and recursive descent into them) even when the store is full, to allow the user (client) to fix the problem by excluding some files and having bbackupd delete them from the store.
  • [1024] Import error handling improvements from merge branch
  • [1033] Replace if/else tree with switch, to help compiler to optimise it and detect errors
  • [1038] Expanded character set conversion API to allow arbitrary conversions (needed to handle command lines with international encodings)
  • [1039] Don't bother to split up the command line on Win32 (it's never used)
  • [1039] Return the PID of the created process on Win32
  • [1040] Properly handle broken pipe when using FileStream? to read from a local process, and the child quits. Report this as EOF rather than throwing.
  • [1041] Don't disable lock waiting loop on Win32 (even though it does nothing and is never called right now)
  • [1041] Use InvisibleTempFileStream? for temporary files on Windows, rather than deleting them ourselves.
  • [1042] Reinstate SendMessageToHousekeepingProcess?, but make it do nothing
  • [1043] Convert command line commands from system encoding to console encoding, so that we can convert them from console to UTF-8 later (yuck).
  • [1043] Don't try to read from the console when its file handle is invalid (e.g. when running under LocalProcessStream?).
  • [1046] Print localised error messages rather than error codes for all errors.
  • [1047] Convert both arguments of the Get command to local encoding, to support local paths in local encoding.
  • [1063] Share more code between Win32 port and other platforms.
  • [1069] Don't write to the interprocess comms socket if it's not open.

Build 784

Released on 2006/08/19. Download here.

Changes since the last release (777):

  • (Windows) Fixed support for SyncAllowScript.

Build 777

Released on 2006/08/11. Download here.

Changes since the last release (767):

  • (Windows) Fixed warnings when scanning directories containing excluded files that are also locked (e.g. pagefile.sys)

Build 767

Released on 2006/08/10. Download here.

Changes since the last release (716):

  • Fixed double slash problem when backing up root directory, which stopped paths from matching Exclude directives

Build 716

Released on 2006/08/06. Download here.

Changes since the last release (568):

  • (Windows) All unit tests run and pass
  • (Windows) Fixed support for installing service when configuration file path contains a space
  • Changed the exceeded storage limits message to a warning, not info
  • (Windows) Save PID file when running daemon
  • (Windows) Improved (largely rewritten) implementation of poll()
  • (Windows) Fixed non-blocking SSL sockets
  • (Windows) Fixed error handling on named pipe, thanks to Pascal Lalonde
  • (Windows) Internally convert Unix path separators to Windows (/ to \) on all filenames, e.g. those specified in configuration files
  • (Windows) Added support for Unicode filenames when creating and changing directories, may fix restoring files with unicode characters in their names
  • (Windows) Hopefully fixed the inaccurate sleep problem after backup errors, which might cause the daemon to wait much longer than expected before retrying, and use too much CPU while doing so.
  • Rewrote upload decision logic (whether or not to upload a given file), should be easier to read and debug and implement same semantics
  • (Windows) Fixed restoring to paths with Unix path separators (for unit tests)
  • Added a new bbackupctl command to wait for the end of the next sync (useful for unit tests)
  • Fixed spelling errors
  • Cleaned up bbackupctl option handling code to make it easier to extend
  • (Windows) Changed permissions requested in openfile() to better match expectations, should fix backing up read-only files and filesystems
  • (Windows) Fixed buffering in WinNamedPipeStream when more data is in the pipe than will fit into the supplied buffer
  • (Windows) Fixed minor memory leaks in bbackupd (cosmetic)
  • (Windows) Fixed infinite loop with 100% CPU usage when a read error occurs on the named pipe
  • (Windows) Improved handling of locked files during compare
  • Disabled informational messages in bbackupctl when running in quiet mode
  • Merged changed from trunk (nothing significant, I think)
  • (Windows) Fixed restoring and comparing file attributes, creation and modification times
  • (Windows) Fixed matching in exclude lists to be case insensitive

Build 568

Released on 2006/05/17. Download here.

Changes since the last release (564):

  • Fixed regular expression problem in r564 by clean rebuild
  • Fixed service installation with config file path containing spaces (perhaps not completely fixed until build 716)

Build 564

Do not use this build. Regular expression support is broken.

Released on 2006/05/05. Download here.

Changes since the last release (538):

  • Fixed potential encoding problems when displaying filenames during compare
  • Fixed wrong path reported on some compare errors

Build 538

Released on 2006/03/05. Download here.

Changes since the last release (511):

  • Fixed failure to to delete StoreObjectInfoFile

Build 511

Released on 2006/02/25. Download here.

Changes since the last release (473):

  • Fixed timestamp listing in bbackupquery

Build 473 (RC3)

Released on 2006/02/18. Download here.

Changes since the last release (462):

  • None known, except the build name

Others

All releases may be found here. Please check the known bugs page, and the Subversion logs for the release files, to determine what has changed.

Last modified 4 years ago Last modified on Dec 6, 2012, 2:23:46 PM