[Box Backup-commit] [boxbackup/boxbackup] f4bf9e: Win32: add experimental stack backtraces with symb...

GitHub noreply at github.com
Mon Jan 15 21:59:16 GMT 2018


  Branch: refs/tags/BoxBackup-0.12.s3_support_merge.180115.6a8f093
  Home:   https://github.com/boxbackup/boxbackup
  Commit: f4bf9ec324c88ff7eb4dac6d43492250fdca1f15
      https://github.com/boxbackup/boxbackup/commit/f4bf9ec324c88ff7eb4dac6d43492250fdca1f15
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M lib/common/Box.h
    M lib/common/MainHelper.cpp
    M lib/common/MainHelper.h
    M lib/common/Utils.cpp

  Log Message:
  -----------
  Win32: add experimental stack backtraces with symbol lookup

(cherry picked from commit f4685e72c2c7e274533c1cb149180809631a1da7)


  Commit: 2a38d4119677b5ded50748d074536a27b2b708d3
      https://github.com/boxbackup/boxbackup/commit/2a38d4119677b5ded50748d074536a27b2b708d3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Logging.cpp
    M lib/common/Logging.h

  Log Message:
  -----------
  Modify command-line -L option to override log level for a specific file

This allows enabling TRACE logging for a specific file (e.g. to enable
exception backtraces for that file) without enabling TRACE globally.

Replace HideFileGuard with LogLevelOverrideByFileGuard.

(cherry picked from commit 29f74be06351b6ce9a872765db63171ad902b596)


  Commit: f7cff37cfe4b8dd1f1a3c4802c0e6e8d20be823f
      https://github.com/boxbackup/boxbackup/commit/f7cff37cfe4b8dd1f1a3c4802c0e6e8d20be823f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Box.h
    M lib/common/Logging.cpp
    M lib/common/Logging.h
    M lib/common/Utils.cpp
    M lib/common/Utils.h
    M lib/server/SocketStream.cpp

  Log Message:
  -----------
  Use filename where exception was thrown in DumpStackBacktrace

Allows us to turn on exceptions for specific files, rather that
filtering them all as Utils.cpp.

(cherry picked from commit 3590e9745dac2f25267bd755ed3d554423395330)


  Commit: aa16578a3877af0ec29317cb66564b172aa88119
      https://github.com/boxbackup/boxbackup/commit/aa16578a3877af0ec29317cb66564b172aa88119
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M runtest.pl.in

  Log Message:
  -----------
  Enable backtraces and timestamps in all tests when building with CMake

(cherry picked from commit 166e39c11d242ebed6b62fc3f126af48345a22ca)


  Commit: cef28cfca1bcbe20410cbfb7a5b11356d3c2f3e4
      https://github.com/boxbackup/boxbackup/commit/cef28cfca1bcbe20410cbfb7a5b11356d3c2f3e4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Use the correct preprocessor define for release builds

(cherry picked from commit 085149bf1c2c287ee744f2e094a99a77fc89dc60)


  Commit: a56aaa3cd840ae0e18b991744a06c3ea229cb1a8
      https://github.com/boxbackup/boxbackup/commit/a56aaa3cd840ae0e18b991744a06c3ea229cb1a8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/server/SocketStream.cpp

  Log Message:
  -----------
  Show IP address as well as hostname for ServerException::SocketOpenError

(cherry picked from commit 1a51adcd6be000f09fa280e42fb12e5631cd69b9)


  Commit: 62eb5cfdbb60e585e041fb8fbf8c8ce5f64a25ba
      https://github.com/boxbackup/boxbackup/commit/62eb5cfdbb60e585e041fb8fbf8c8ce5f64a25ba
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M test/backupstorefix/testbackupstorefix.cpp

  Log Message:
  -----------
  test/backupstorefix: tag bbstoreaccounts check output in tests

(cherry picked from commit c31d7143273f2d5257ec690e894442a8398aaf21)


  Commit: 166d1ec6e711176e32cbf01beb00d1425e03da45
      https://github.com/boxbackup/boxbackup/commit/166d1ec6e711176e32cbf01beb00d1425e03da45
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/m4/boxbackup_tests.m4

  Log Message:
  -----------
  Add support for M4 CXX flag detection in CMakeLists

Enables all flags that are detected by M4 builds to be detected by CMake builds
as well (except for -Wall which enables a bunch of junk).

(cherry picked from commit 2ea8a9706d79a386729c7b2d814089e90bac6926)


  Commit: 336859cb7f499300d4b6e0b6bcd18e275a1f0043
      https://github.com/boxbackup/boxbackup/commit/336859cb7f499300d4b6e0b6bcd18e275a1f0043
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/DebugMemLeakFinder.cpp
    M lib/common/Utils.cpp

  Log Message:
  -----------
  Store and log full stack traces for leaked memory allocations

Don't dump stack backtrace when logging memory leaks to a file

Since the backtrace goes to the console instead, it's confusing to have them in
different places.

(cherry picked from commit 6e7df4dfdc06eaff2dd0ef51741df3cf6ba319ea)
(cherry picked from commit 270cd1f16fa8a32b07ae0b9762a417db7b95b82f)
(cherry picked from commit c627e9547fb8a191ea36780b140fd0516a0bffa8)


  Commit: 1cdca12e0025c4551c2cc8a33dcb89a7bc6dc212
      https://github.com/boxbackup/boxbackup/commit/1cdca12e0025c4551c2cc8a33dcb89a7bc6dc212
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/buildenv-testmain-template.cpp
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M lib/common/Test.h
    M test/backupstorefix/testbackupstorefix.cpp
    M test/bbackupd/testbbackupd.cpp

  Log Message:
  -----------
  Increase default verbosity in some timing tests


  Commit: 38ba7510f2cad9accf445d5633c64e98a637a139
      https://github.com/boxbackup/boxbackup/commit/38ba7510f2cad9accf445d5633c64e98a637a139
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Detect which debugger to use in t-gdb scripts: lldb or gdb

Should make debugging on Mac and BSD less painful.

Make t-gdb fail with an error when no debugger was detected.

(cherry picked from commit da98a8183737fb1fcb658cebd9612791a4750c4c)
(cherry picked from commit ea6bc722131222d1fad08521e61f552f16941b01)


  Commit: 03ba60897794d92b5710808ad694146931da6fb1
      https://github.com/boxbackup/boxbackup/commit/03ba60897794d92b5710808ad694146931da6fb1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Don't add CXXFLAGS to CFLAGS

Some CXXFLAGS such as enabling C++11 don't make sense for CC and will be
rejected, causing the compile to fail. We don't really test for flags being
compatible with the C compiler anyway, and we don't have enough C files to
care that much.

(cherry picked from commit 2ad9ee9012d4a7354c33ff0272c0768b952a9064)


  Commit: a566e6a5dcc56bbaa8bc3ba7e60b7fcd89928918
      https://github.com/boxbackup/boxbackup/commit/a566e6a5dcc56bbaa8bc3ba7e60b7fcd89928918
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Perl buildsystem: add test prepare targets

Similar to the CMake prepare targets, these are useful when intending to
debug tests or run a server using a standard test configuration, which
requires the testfiles directory to be copied into the binary output tree.

(cherry picked from commit 2afecdd57a3bcf42c116c8535843039a1596feac)


  Commit: e3bb358cb1ff41ec546db929023f5830db77366e
      https://github.com/boxbackup/boxbackup/commit/e3bb358cb1ff41ec546db929023f5830db77366e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/StoreTestUtils.cpp

  Log Message:
  -----------
  Rename BackupStoreAccountsControl to BackupStoreAccountControl

For consistency with the base class, BackupAccountControl, and grammatical
reasons.


  Commit: 54f07522aa8837cd5673aebe91da7a01fcc1c5d0
      https://github.com/boxbackup/boxbackup/commit/54f07522aa8837cd5673aebe91da7a01fcc1c5d0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Add missing implementations of RaidBackupFileSystem methods

These should have been added whenever BackupFileSystem.h was added, which was
4db4deed3448b9c2b9e885a20cb1a777632464d6, although it didn't really belong in
that commit either. But it's too late to change history now. Adding the missing
method definitions makes it possible to instantiate a RaidBackupFileSystem.


  Commit: c2572e705c38dbb552c0d69e7851b2c300650cdc
      https://github.com/boxbackup/boxbackup/commit/c2572e705c38dbb552c0d69e7851b2c300650cdc
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/StoreTestUtils.cpp

  Log Message:
  -----------
  Refactor BackupStoreAccountControl to be for a specific account ID

This allows other BackupAccountControl implementations to implement the same
interface without needing to support account IDs, which are very
store-specific.


  Commit: 28b977048b86d38edbbc14b3887d9e787da0046b
      https://github.com/boxbackup/boxbackup/commit/28b977048b86d38edbbc14b3887d9e787da0046b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Remove debugging code to list files during test_multiple_uploads

Revert "Try listing files to help debug random failures of test_multiple_uploads()."

This reverts commit e302ded5b7d40fe88d65808564f4db9df2a6f878.


  Commit: 21494566d89044da6ac986ac2062ac380e96f1df
      https://github.com/boxbackup/boxbackup/commit/21494566d89044da6ac986ac2062ac380e96f1df
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp
    M infrastructure/m4/boxbackup_tests.m4
    M infrastructure/makebuildenv.pl.in
    M infrastructure/travis-build.sh
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupConstants.h
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupProtocol.txt
    M lib/backupstore/BackupStoreAccounts.h
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/backupstore/BackupStoreCheck2.cpp
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/BackupStoreContext.h
    M lib/backupstore/BackupStoreException.txt
    M lib/backupstore/BackupStoreFile.cpp
    M lib/backupstore/BackupStoreRefCountDatabase.cpp
    M lib/backupstore/HousekeepStoreAccount.cpp
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M lib/bbstored/BackupStoreDaemon.cpp
    M lib/common/CollectInBufferStream.cpp
    M lib/common/CommonException.txt
    M lib/common/NamedLock.cpp
    M lib/httpserver/S3Simulator.cpp
    M runtest.pl.in
    M test/backupstore/testbackupstore.cpp
    M test/backupstorefix/testbackupstorefix.cpp
    M test/backupstorepatch/testbackupstorepatch.cpp
    M test/bbackupd/testbbackupd.cpp
    M test/common/testcommon.cpp
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Whitespace and comment cleanup


  Commit: de0206641da75d588855474b8a756fb4cada7a00
      https://github.com/boxbackup/boxbackup/commit/de0206641da75d588855474b8a756fb4cada7a00
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Custom build system: fix autogen dependencies

Remove useless inclusion of Makefile.extras with paths in subdirs that will
never match anything, and replace those inclusions with recursive Make calls to
build those targets. This allows changes to exception and protocol files to be
detected automatically, and the C++ code regenerated.


  Commit: 8f6076a3bebc419224184695ba41e67fda2e7db5
      https://github.com/boxbackup/boxbackup/commit/8f6076a3bebc419224184695ba41e67fda2e7db5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupclient/BackupClientRestore.cpp
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/common/Test.cpp
    M lib/common/Utils.cpp
    M lib/common/Utils.h
    M lib/httpserver/S3Simulator.cpp

  Log Message:
  -----------
  Make ObjectExists and BackupStoreCheck use object_exists_t enum


  Commit: 858f7c2e7b67d4ee650909ef0dc248bc8b1a4cb7
      https://github.com/boxbackup/boxbackup/commit/858f7c2e7b67d4ee650909ef0dc248bc8b1a4cb7
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Utils.cpp
    M lib/common/Utils.h

  Log Message:
  -----------
  Add GetTempDirPath() for portability

On Unix, check TEMP, TMP and TMPDIR, and if no env var is set, fall back to
/tmp.  For some reason it's becoming increasingly common for Unixes not to set
TMP* to anything.


  Commit: 42e2b70340a79078369ee26f5b0a43baad7716b2
      https://github.com/boxbackup/boxbackup/commit/42e2b70340a79078369ee26f5b0a43baad7716b2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Fix include ordering in testcommon.cpp


  Commit: 79b46b17d66498b5f30e1272948b078558bd0055
      https://github.com/boxbackup/boxbackup/commit/79b46b17d66498b5f30e1272948b078558bd0055
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Refactor testcommon to split into independent tests

Remove redundant NamedLock tests.


  Commit: 16a037524df72cc7a173ce8d50080c20e0622281
      https://github.com/boxbackup/boxbackup/commit/16a037524df72cc7a173ce8d50080c20e0622281
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Utils.cpp
    M lib/common/Utils.h
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Add force parameter to RemovePrefix and RemoveSuffix


  Commit: 2623d879ef2dd594da522f392cc7c618be8c4564
      https://github.com/boxbackup/boxbackup/commit/2623d879ef2dd594da522f392cc7c618be8c4564
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupCommands.cpp
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/BackupStoreContext.h

  Log Message:
  -----------
  Remove BackupStoreContext::ReceivedFinishCommand

Replace with CleanUp(). We don't need two methods that do almost the same
thing.


  Commit: 79d89af10a6c54101571730f0e23e522e4d3c85b
      https://github.com/boxbackup/boxbackup/commit/79d89af10a6c54101571730f0e23e522e4d3c85b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupProtocol.h
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/BackupStoreContext.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Refactor BackupStoreContext::GetBackupStoreInfo

Almost all access to mapStoreInfo is now via GetBackupStoreInfo(Internal), in
preparation for the refactor that will move the main copy of the
BackupStoreInfo to the BackupFileSystem instance instead.


  Commit: 07ed9cc557c600b21743cd0ca80bf707c0571cab
      https://github.com/boxbackup/boxbackup/commit/07ed9cc557c600b21743cd0ca80bf707c0571cab
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/m4/boxbackup_tests.m4
    M lib/backupstore/BackupStoreContext.cpp

  Log Message:
  -----------
  Enable C++0x support

We need C++0x features enabled for "auto" to work, and using Boost properly
seems to require this. Use "auto" in a few places to prove that it works.


  Commit: 881f02657014f9cc251d592f3f6ecc077aadd198
      https://github.com/boxbackup/boxbackup/commit/881f02657014f9cc251d592f3f6ecc077aadd198
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Refactor to create BackupFileSystem::GetBackupStoreInfo

Extract common code from filesystem-specific implementations, and rename them
to GetBackupStoreInfoInternal().


  Commit: e1b82802336870b0dd63e2ca6ec4c8cc322aff7d
      https://github.com/boxbackup/boxbackup/commit/e1b82802336870b0dd63e2ca6ec4c8cc322aff7d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Refactor BackupFileSystem::GetLock()

Call subclass implementations of TryGetLock(), and throw an exception if we
fail to get a lock instead of returning false.


  Commit: 1d5d5e417c66fb67785a7cdef38550cfe2a5f6b7
      https://github.com/boxbackup/boxbackup/commit/1d5d5e417c66fb67785a7cdef38550cfe2a5f6b7
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Test.cpp
    M lib/common/Utils.cpp
    M lib/common/Utils.h

  Log Message:
  -----------
  Refactor test code into process_is_running()

We need the ability to check whether a process is still running to check for
stale S3 account locks in SimpleDB, so move this code out of Test.cpp and into
Utils.cpp, for use outside of tests.


  Commit: b562039f1b048590d6fb924c926149357a58c2b6
      https://github.com/boxbackup/boxbackup/commit/b562039f1b048590d6fb924c926149357a58c2b6
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Test.cpp
    M lib/common/Test.h
    M lib/common/Utils.cpp
    M lib/common/Utils.h

  Log Message:
  -----------
  Implement compare_lists and test_equal_maps in lib/common/Test.cpp


  Commit: 3b15f85a054a2edbd14cc577cb46be2bfd07f9d4
      https://github.com/boxbackup/boxbackup/commit/3b15f85a054a2edbd14cc577cb46be2bfd07f9d4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/HTTPQueryDecoder.cpp
    M lib/httpserver/HTTPQueryDecoder.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add static method HTTPQueryDecoder::URLEncode

This will be needed for request parameter encoding and for SimpleDB.


  Commit: 8f5120b18b4d91e4831c85df782a6e52d5210c3d
      https://github.com/boxbackup/boxbackup/commit/8f5120b18b4d91e4831c85df782a6e52d5210c3d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/HTTPRequest.cpp
    M lib/httpserver/HTTPRequest.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add query parameter editing and encoding to HTTPRequest


  Commit: 3b67f039382683ea568bb391ab4cdb5399fa485b
      https://github.com/boxbackup/boxbackup/commit/3b67f039382683ea568bb391ab4cdb5399fa485b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/S3Client.cpp
    M lib/httpserver/S3Client.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add support for virtualhost names in S3Client

This is a precondition of support for both S3 and SimpleDB in the S3Simulator,
since otherwise we can't tell the requests apart.


  Commit: 9926b622d74eecf000e6e6be1ee25703f768ff81
      https://github.com/boxbackup/boxbackup/commit/9926b622d74eecf000e6e6be1ee25703f768ff81
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Test.cpp
    M lib/httpserver/HTTPException.txt
    M lib/httpserver/S3Simulator.cpp
    M lib/httpserver/S3Simulator.h
    A lib/httpserver/SimpleDBClient.cpp
    A lib/httpserver/SimpleDBClient.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add simulator and client for SimpleDB

This will be used to support reliable instant locking of S3 accounts.


  Commit: 80540ca33ab05fb1bdf65f56e09b0593c765ef1a
      https://github.com/boxbackup/boxbackup/commit/80540ca33ab05fb1bdf65f56e09b0593c765ef1a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/S3Simulator.cpp
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add support for S3-compatible ETag headers to S3Simulator


  Commit: 23bdbc6d62a26e27bd6c19c6cee0d012a2f4ce89
      https://github.com/boxbackup/boxbackup/commit/23bdbc6d62a26e27bd6c19c6cee0d012a2f4ce89
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/S3Client.cpp
    M lib/httpserver/S3Client.h
    M lib/httpserver/S3Simulator.cpp
    M lib/httpserver/S3Simulator.h
    M modules.txt
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add support for If-None-Match header to S3Client and S3Simulator

This allows the client to only download a file if it doesn't match the one in
the local cache, which makes it possible to use the cache very efficiently.


  Commit: 662e7cb8b53508d51692844c3b2939dfe0dde237
      https://github.com/boxbackup/boxbackup/commit/662e7cb8b53508d51692844c3b2939dfe0dde237
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M test/bbackupd/testbbackupd.cpp

  Log Message:
  -----------
  Rename setup_test_bbackupd() in test/bbackupd

The name of this utility function was confusing with the SETUP_TEST_BBACKUPD
macro which served an entirely different purpose, so I renamed it to
prepare_test_with_client_daemon().


  Commit: 1a86a0ec4253a517f8053e5881ecb3904483c5d0
      https://github.com/boxbackup/boxbackup/commit/1a86a0ec4253a517f8053e5881ecb3904483c5d0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/BackupCommands.cpp
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/BackupStoreContext.h

  Log Message:
  -----------
  Make GetBlockSize() use BackupFileSystem

Refactor BackupAccountControl, BackupStoreContext and BackupCommands to call
BackupFileSystem to get the block size of the filesystem. It's a start.


  Commit: 9dea0edff38efe327dc5305cacfcfc5ea4508d76
      https://github.com/boxbackup/boxbackup/commit/9dea0edff38efe327dc5305cacfcfc5ea4508d76
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/backupstore/StoreTestUtils.h
    M lib/server/makeprotocol.pl.in

  Log Message:
  -----------
  Protocol generator: record last error message received

Store this as a string (as well as the error code) so that we can report it to
the user, for example in test failure messages.


  Commit: 3dca0831ef2718193d3936d7bc038188b94e9a00
      https://github.com/boxbackup/boxbackup/commit/3dca0831ef2718193d3936d7bc038188b94e9a00
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Logging.h
    M lib/server/Socket.cpp

  Log Message:
  -----------
  Improve error message on hostname lookup failure

Throw exceptions with a message, including the OS error, which means retrieving
it properly from the winsock library on Windows.


  Commit: 03b1973de8d733761fff6709261b29d458af4006
      https://github.com/boxbackup/boxbackup/commit/03b1973de8d733761fff6709261b29d458af4006
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4

  Log Message:
  -----------
  Make narrowing conversions an error

E.g. on ARM64 with unsigned chars, this is a real error, and causes the build
to fail:
https://buildd.debian.org/status/fetch.php?pkg=boxbackup&arch=arm64&ver=0.11.1~r2837-4&stamp=1485057548&raw=0

(cherry picked from commit 3433291fc5bfbbdc87385796c26c44699edf5c0c)


  Commit: 784fe4320f70c125f8d24d02f195e30064e09ab3
      https://github.com/boxbackup/boxbackup/commit/784fe4320f70c125f8d24d02f195e30064e09ab3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/m4/boxbackup_tests.m4
    M lib/intercept/intercept.cpp
    M lib/intercept/intercept.h

  Log Message:
  -----------
  Fix incorrect detection of the need to intercept lxstat

For some reason, #if defined __GNUC__ && __GNUC__ >= 2 was true on OSX,
resulting in intercepts not working properly.  It was also broken on MIPS64,
causing test/raidfile to fail with errors like: TEST FAILURE: Condition
[TestGetFileSize(stripe1fn) == fs1] failed at testraidfile.cpp:415

https://buildd.debian.org/status/fetch.php?pkg=boxbackup&arch=mips64el&ver=0.11.1~r2837-4&stamp=1485060478&raw=0

Now we detect when to intercept Linux' lxstat syscall using autoconf macros.
We also detect whether to intercept stat64 (instead of stat) based on whether
the stat64 function exists.

(cherry picked from commit a042c9951fabc1fb4f57e6d13d739192dda76025)

Fix d2775d5b


  Commit: 198a48b7011234ec6dbec93b2a2f49e37582c159
      https://github.com/boxbackup/boxbackup/commit/198a48b7011234ec6dbec93b2a2f49e37582c159
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/BoxTime.cpp

  Log Message:
  -----------
  Increase precision of timing on Windows.

Should hopefully reduce random failures of timing-dependent tests which
rely on subsecond precision for accuracy.

(cherry picked from commit c845b2e39fffeb560983a301d810616a6495469d)
(cherry picked from commit ce7e000d43a91dcd0d39ee3a505521e700875556)


  Commit: e4d488d1a07bf1db32e96a9526d1fd1ea54f0967
      https://github.com/boxbackup/boxbackup/commit/e4d488d1a07bf1db32e96a9526d1fd1ea54f0967
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/windows/CMakeLists.txt

  Log Message:
  -----------
  Switch PCRE back to an official release


  Commit: 2d31a3178ba5a39af594c1a0188748f5c8045b18
      https://github.com/boxbackup/boxbackup/commit/2d31a3178ba5a39af594c1a0188748f5c8045b18
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/windows/CMakeLists.txt

  Log Message:
  -----------
  Remove BoxBackup install step from Windows unibuild

We don't need to install anything in C:\Program Files\BoxBackup, and often
don't have permission to do that anyway.


  Commit: 95b5d8f14f59cf8a887bccfa78c1d0fda0008aba
      https://github.com/boxbackup/boxbackup/commit/95b5d8f14f59cf8a887bccfa78c1d0fda0008aba
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M infrastructure/cmake/windows/CMakeLists.txt

  Log Message:
  -----------
  Upgrade to OpenSSL 1.0.2l

Run OpenSSL tests after building it for Windows Unibuild


  Commit: 3ecc0f2211b3e1b12dd6770c3e8d39a4b613c701
      https://github.com/boxbackup/boxbackup/commit/3ecc0f2211b3e1b12dd6770c3e8d39a4b613c701
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/raidfile/RaidFileWrite.cpp

  Log Message:
  -----------
  Improve exception messages from RaidFileWrite

Use THROW_SYS_FILE_ERROR to include the system error message in the exception
message. Replace calls to BOX_LOG_SYS_ERROR where previously used.


  Commit: 58870818a787cd658fa7b9df90a9a90f5fb6ee45
      https://github.com/boxbackup/boxbackup/commit/58870818a787cd658fa7b9df90a9a90f5fb6ee45
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Travis CI: exclude (don't build) tags created by AppVeyor

AppVeyor creates new tags for each release (binary build), which have the same
git commit that we already built, so building it again is a waste.


  Commit: 73f70d5c655925c8225cb9f71f8980ec237b87d0
      https://github.com/boxbackup/boxbackup/commit/73f70d5c655925c8225cb9f71f8980ec237b87d0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/HTTPResponse.h
    M lib/httpserver/S3Client.cpp

  Log Message:
  -----------
  Add ResponseCodeString shortcut to HTTPResponse

Useful for debug logging and exception messages.

Add the actual HTTP response to the exception message in
S3Client::CheckResponse, to help with debugging.


  Commit: 3e4ec9293867452f5f07245395aaf0079560a4dd
      https://github.com/boxbackup/boxbackup/commit/3e4ec9293867452f5f07245395aaf0079560a4dd
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/httpserver/HTTPRequest.cpp
    M lib/httpserver/HTTPRequest.h
    M lib/httpserver/S3Simulator.cpp

  Log Message:
  -----------
  Add option to include parameters in HTTPRequest::GetRequestURI

This is needed to support the ListBucket command.


  Commit: 0b18b384375bdbf0dca3803b6740eff7516c38ef
      https://github.com/boxbackup/boxbackup/commit/0b18b384375bdbf0dca3803b6740eff7516c38ef
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-09-24 (Sun, 24 Sep 2017)

  Changed paths:
    M lib/common/Utils.cpp

  Log Message:
  -----------
  Fix FileExists in Utils.cpp

Testing for st.st_mode & S_IFLNK doesn't work on OSX, because IFLNK and IFREG
share bits, so regular files have a nonzero result and appear to be links. It
seems safer and more readable to use the mode test macros, e.g. S_ISLNK and
S_ISDIR.


  Commit: b08bd5fbfe52192ad18ea38c45fed671a64ca282
      https://github.com/boxbackup/boxbackup/commit/b08bd5fbfe52192ad18ea38c45fed671a64ca282
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/httpserver/S3Client.cpp
    M lib/httpserver/S3Client.h
    M lib/httpserver/S3Simulator.cpp
    M lib/httpserver/S3Simulator.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add ListBucket command support to S3Simulator and S3Client


  Commit: 64405ac2b6f0a183e404525fd5aae52157daad56
      https://github.com/boxbackup/boxbackup/commit/64405ac2b6f0a183e404525fd5aae52157daad56
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/common/ReadLoggingStream.cpp

  Log Message:
  -----------
  Fix negative estimated remaining time due to 64-bit integer overflow on large files.

(cherry picked from commit b27d4e7c61b04db054399435b5c57df1f9b1832b)


  Commit: f4661d62640be5b6c7e7b046df713502f42ebad9
      https://github.com/boxbackup/boxbackup/commit/f4661d62640be5b6c7e7b046df713502f42ebad9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/httpserver/S3Client.cpp
    M lib/httpserver/S3Client.h
    M lib/httpserver/S3Simulator.cpp
    M lib/httpserver/S3Simulator.h
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Add support for the HEAD and DELETE methods to the S3Simulator and S3Client.


  Commit: 2269177efbcec9a3735e94994cee367467c2a789
      https://github.com/boxbackup/boxbackup/commit/2269177efbcec9a3735e94994cee367467c2a789
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/common/BoxPlatform.h

  Log Message:
  -----------
  Enable memory testing under Darwin, as it does work now

(cherry picked from commit 86dc5ff3666c934dcf4fce261a93431b78bf018f)


  Commit: 819f4679f898c865ae06e7ff2e7e5885f444329c
      https://github.com/boxbackup/boxbackup/commit/819f4679f898c865ae06e7ff2e7e5885f444329c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/HousekeepStoreAccount.cpp

  Log Message:
  -----------
  Rename local variable

First part of refactoring HousekeepStoreAccount to use BackupFileSystem.


  Commit: 116bb2600cb3b603adffe56233599c7f3efd8f38
      https://github.com/boxbackup/boxbackup/commit/116bb2600cb3b603adffe56233599c7f3efd8f38
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreException.txt
    M lib/backupstore/BackupStoreRefCountDatabase.cpp
    M lib/backupstore/BackupStoreRefCountDatabase.h

  Log Message:
  -----------
  Fix conflict over unlocked refcount DB

If BackupStoreCheck is are read-only, then it should not open a "temporary"
database in the old sense, because that does actually change the store: the
temporary file would conflict with any other process which wants to do the same
thing at the same time (e.g. housekeeping), and if neither process locks the
store, they will break each other.

Instead, we now distinguish between "potential" refcount DBs (of which there
can only be one at a time, and which require a lock to create) and really
"temporary" ones which are created in a temporary directory, can never become
permanent via Commit(), do not require a lock, and are unlimited in number.
Commit() will rename them, but still in the temporary directory, so it has no
effect on the store.

This requires some changes to the BackupStoreRefCountDatabase::Create interface
to add new flags.


  Commit: b010bdf48e99dd9d08ceb630dddeb005a4d70ca4
      https://github.com/boxbackup/boxbackup/commit/b010bdf48e99dd9d08ceb630dddeb005a4d70ca4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupStoreRefCountDatabase.cpp
    M lib/backupstore/BackupStoreRefCountDatabase.h

  Log Message:
  -----------
  Refactor BackupStoreRefCountDatabase to an abstract interface

This makes it easier to cleanly subclass in BackupFileSystem, to change its
behaviour by hooking into its Commit() method.


  Commit: 2674466232de994d6192e08a25c8eb26d94eed62
      https://github.com/boxbackup/boxbackup/commit/2674466232de994d6192e08a25c8eb26d94eed62
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreException.txt
    M lib/backupstore/BackupStoreRefCountDatabase.cpp
    M lib/backupstore/BackupStoreRefCountDatabase.h

  Log Message:
  -----------
  Move management of BackupStoreRefCountDatabase into BackupFileSystem

This is needed to allow BackupFileSystem to commit the database to storage on
request, and to cache it, which is needed for S3 support.


  Commit: e6ef4d9e1d545da3a0a3eeee79d57eed9fb9738a
      https://github.com/boxbackup/boxbackup/commit/e6ef4d9e1d545da3a0a3eeee79d57eed9fb9738a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreAccounts.cpp
    M lib/backupstore/BackupStoreAccounts.h
    M lib/backupstore/BackupStoreException.txt
    M lib/backupstore/BackupStoreInfo.cpp
    M lib/backupstore/BackupStoreInfo.h

  Log Message:
  -----------
  Initial refactor of BackupAccountControl to use BackupFileSystem

Abstract away some account operations using BackupFileSystem so that they can
be implemented differently for S3 accounts. In particular, account opening and
NamedLock usage were targets for this refactor. BackupStoreInfo creation and
opening ended up being partially addressed as well. This significantly reduces
the diffs to the s3_support branch.


  Commit: b40dc419531b47e5393970366e3d7710da70b6ae
      https://github.com/boxbackup/boxbackup/commit/b40dc419531b47e5393970366e3d7710da70b6ae
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/backupstore/BackupProtocol.h
    M lib/backupstore/BackupStoreFile.h
    M lib/backupstore/BackupStoreFileCmbIdx.cpp
    M lib/backupstore/BackupStoreFileEncodeStream.h
    M lib/common/BufferedStream.h
    M lib/common/BufferedWriteStream.h
    M lib/common/CollectInBufferStream.h
    M lib/common/FileStream.h
    M lib/common/MemBlockStream.h
    M lib/common/PartialReadStream.h
    M lib/common/RateLimitingStream.h
    M lib/common/ReadGatherStream.h
    M lib/common/ReadLoggingStream.h
    M lib/common/SelfFlushingStream.h
    M lib/common/ZeroStream.h
    M lib/compress/CompressStream.h
    M lib/raidfile/RaidFileRead.h
    M lib/raidfile/RaidFileWrite.h
    M lib/server/ProtocolUncertainStream.h
    M lib/server/SocketStream.h
    M lib/server/SocketStreamTLS.h
    M lib/server/TcpNice.h
    M lib/server/WinNamedPipeStream.h
    M test/bbackupd/testbbackupd.cpp
    M test/compress/testcompress.cpp

  Log Message:
  -----------
  Enable compiler warning -Werror=overloaded-virtual, and fix


  Commit: c5466cc85a83d095388c28dc18a1b48788f64dc2
      https://github.com/boxbackup/boxbackup/commit/c5466cc85a83d095388c28dc18a1b48788f64dc2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/HousekeepStoreAccount.cpp
    M lib/backupstore/HousekeepStoreAccount.h
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M lib/bbstored/BBStoreDHousekeeping.cpp

  Log Message:
  -----------
  Refactor HousekeepStoreAccount to use BackupFileSystem

This involved moving big chunks of functionality into RaidBackupFileSystem, for
example CombineFile, CombineDiffs and RaidPutFileCompleteTransaction. Not much
is implemented for S3BackupFileSystem yet.


  Commit: 7b8a48fe0d4e141f5fad89818e1b9f10bcf028bc
      https://github.com/boxbackup/boxbackup/commit/7b8a48fe0d4e141f5fad89818e1b9f10bcf028bc
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/backupstore/BackupStoreCheck2.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 1

Pass the BackupFileSystem from BackupAccountControl to BackupStoreCheck, and
use it for locking the account (actually a no-op because it's already locked).
Trivial, but it's a start.


  Commit: c597742a73de567f278c83deb87872326e9109ad
      https://github.com/boxbackup/boxbackup/commit/c597742a73de567f278c83deb87872326e9109ad
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/backupstore/BackupStoreCheck2.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 2

Use BackupFileSystem to access the refcount database.


  Commit: dd7ecdf470933e660ca8ed585fa11233d4652609
      https://github.com/boxbackup/boxbackup/commit/dd7ecdf470933e660ca8ed585fa11233d4652609
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupStoreCheck2.cpp
    M lib/backupstore/BackupStoreInfo.cpp
    M lib/backupstore/BackupStoreInfo.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 3

Use BackupFileSystem to access the per-account BackupStoreInfo.


  Commit: fc4621738ba7fb19a2bab95b3c84f2253a3a9391
      https://github.com/boxbackup/boxbackup/commit/fc4621738ba7fb19a2bab95b3c84f2253a3a9391
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreCheck.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 4

Use BackupFileSystem to EnsureObjectIsPermanent.


  Commit: 78b117f4b5c18210b04592b6f61d975091ccef01
      https://github.com/boxbackup/boxbackup/commit/78b117f4b5c18210b04592b6f61d975091ccef01
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/backupstore/BackupStoreCheck2.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 5

Use BackupFileSystem to Get and Put Files and Directories.


  Commit: d33181dd7f4a874656e02d3d12e33849b1ae27ea
      https://github.com/boxbackup/boxbackup/commit/d33181dd7f4a874656e02d3d12e33849b1ae27ea
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreCheck.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 6

Use BackupFileSystem to delete corrupt objects.


  Commit: 65de4e02377a5f8a3ba5b1085fa3011b504ca198
      https://github.com/boxbackup/boxbackup/commit/65de4e02377a5f8a3ba5b1085fa3011b504ca198
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck2.cpp
    M lib/backupstore/BackupStoreException.txt

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 7

Move most low-level filesystem structure check code into BackupFileSystem, and
add specialised implementation for S3.


  Commit: 1eab33a21ad84f084b78d62631e155bbe9ad64f4
      https://github.com/boxbackup/boxbackup/commit/1eab33a21ad84f084b78d62631e155bbe9ad64f4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreCheck.h
    M lib/backupstore/BackupStoreCheck2.cpp

  Log Message:
  -----------
  Refactor BackupStoreCheck to use BackupFileSystem, part 8

Remove last vestiges of RaidFile from BackupStoreCheck.


  Commit: c610b3c76540425fdd494cf8d17c4b3bf89872b5
      https://github.com/boxbackup/boxbackup/commit/c610b3c76540425fdd494cf8d17c4b3bf89872b5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-10-07 (Sat, 07 Oct 2017)

  Changed paths:
    M lib/backupstore/BackupStoreCheck2.cpp

  Log Message:
  -----------
  Rename some local variables in BackupStoreCheck


  Commit: 9e99a27a13fcb3b9ffb8b944d2a6dd9e76a3fecf
      https://github.com/boxbackup/boxbackup/commit/9e99a27a13fcb3b9ffb8b944d2a6dd9e76a3fecf
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupclient/BackupDaemonConfigVerify.cpp
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreException.txt
    M test/s3store/testfiles/bbackupd.conf

  Log Message:
  -----------
  Add configuration for S3 local cache directory


  Commit: 5560491da6837d534c60d21479e204cb7a0804fe
      https://github.com/boxbackup/boxbackup/commit/5560491da6837d534c60d21479e204cb7a0804fe
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp

  Log Message:
  -----------
  Fix repeated calls to TryGetLock() when already holding lock


  Commit: 02c1cf8cd223c536e38d4f2e42ba9406d9a6796e
      https://github.com/boxbackup/boxbackup/commit/02c1cf8cd223c536e38d4f2e42ba9406d9a6796e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Implement RefCountDatabase methods in S3BackupFileSystem


  Commit: f5c468444e115c78f7f4b7490f5288105ded2804
      https://github.com/boxbackup/boxbackup/commit/f5c468444e115c78f7f4b7490f5288105ded2804
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Fix writeback of refcount databases on BackupFileSystem destruction

Call ReleaseLock in the child destructor (not the parent) to allow the refcount
database to clean itself up (normally involving calling
BackupFileSystem::SaveRefCountDatabase) before the BackupFileSystem is too
destroyed to be able to fulfil the request.


  Commit: 0100d3185abf10b17ff7727f2c0f2d8fb6b724d4
      https://github.com/boxbackup/boxbackup/commit/0100d3185abf10b17ff7727f2c0f2d8fb6b724d4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/bbstored/BBStoreDHousekeeping.cpp
    M lib/bbstored/BackupStoreDaemon.cpp

  Log Message:
  -----------
  Wait for housekeeping to finish before bbstored exits

Should fix random test failures due to housekeeping process realising that the
master has asked it to terminate, and logging that it has, after the master has
already died and the test finished, confusing the test runner with its extra
output. Should also help make the occasionally-reported housekeeping crashes
more obvious and easier to debug.


  Commit: 2de1806b32f651cfd4a746bb56c7fec96d2e34ff
      https://github.com/boxbackup/boxbackup/commit/2de1806b32f651cfd4a746bb56c7fec96d2e34ff
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Remove useless Get/Put/HeadObject methods from S3BackupFileSystem

These should not have been part of the API, and are not needed since mrClient
has the same methods.


  Commit: beb2f692fc071b12a8f74db78bacacdf1e09a2bc
      https://github.com/boxbackup/boxbackup/commit/beb2f692fc071b12a8f74db78bacacdf1e09a2bc
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreInfo.cpp
    M lib/backupstore/BackupStoreInfo.h
    R test/s3store/testfiles/store/subdir/dirs/create-me.txt
    M test/s3store/tests3store.cpp

  Log Message:
  -----------
  Refactor BackupAccountControl to use BackupFileSystem


  Commit: 248ca7400fdbb9e9aeba5dbc9e73c88c2f9f5f14
      https://github.com/boxbackup/boxbackup/commit/248ca7400fdbb9e9aeba5dbc9e73c88c2f9f5f14
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupStoreFile.cpp
    M lib/backupstore/BackupStoreFile.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Refactor BackupStoreFile::VerifyStream from write to read side

This allows us to wrap an existing stream (not necessarily a file, e.g. a
streaming HTTPRequest) in a VerifyStream and pass that stream to a
S3PutFileCompleteTransaction, which isn't just going to CopyStreamTo()
somewhere, but do something more complex to it.


  Commit: dbb4d0ee445cff5f7539e05bb9f059bf134ab5c9
      https://github.com/boxbackup/boxbackup/commit/dbb4d0ee445cff5f7539e05bb9f059bf134ab5c9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/server/ServerStream.h

  Log Message:
  -----------
  Improve exception handling in single-process servers

Don't allow an uncaught exception to kill the whole server. This makes it
consistent with multi-process servers, where death of a child worker does
not stop the main server process, so it continues to serve requests.

This makes the HTTPServer robust to exceptions (such as the child
disconnecting while the server is streaming a response) on Windows.

(cherry picked from commit 4a515b9ce8e616b357dc07bee27aa7b3692c3602)


  Commit: 8d6de20b05a4f2f5d00d3a2df0af133cef43648b
      https://github.com/boxbackup/boxbackup/commit/8d6de20b05a4f2f5d00d3a2df0af133cef43648b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/StoreTestUtils.cpp
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Fix a long-standing bug in the set_refcount() test helper function

Previously it would truncate the expected refcount list at the first zero entry,
instead of just removing zero entries from the end.

Also move some test code to test_server_commands which should have been there,
since they were causing issues with the check for the refcount database in
test_server_housekeeping. It's hard to disentangle these two changes.


  Commit: 807758bf2847e77374a8194d3b5f96f413582a04
      https://github.com/boxbackup/boxbackup/commit/807758bf2847e77374a8194d3b5f96f413582a04
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Add extra refcount checks to test_server_housekeeping


  Commit: 0db44389ede4dcb413decd9378e84bfbb9ba92d0
      https://github.com/boxbackup/boxbackup/commit/0db44389ede4dcb413decd9378e84bfbb9ba92d0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M lib/backupstore/BackupCommands.cpp
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/BackupStoreContext.h
    M lib/backupstore/BackupStoreDirectory.h
    M lib/backupstore/BackupStoreException.txt
    M lib/backupstore/StoreTestUtils.cpp
    A lib/common/ByteCountingStream.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Refactor BackupStoreContext to use BackupFileSystem


  Commit: 3e5cfc5a5c12d043c9fd4ab04e7235fd8d9d6cc7
      https://github.com/boxbackup/boxbackup/commit/3e5cfc5a5c12d043c9fd4ab04e7235fd8d9d6cc7
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Enable and fix warnings in infrastructure/makebuildenv.pl


  Commit: 41e8e5025b47c2b24c5fef18a8ccf9a133430770
      https://github.com/boxbackup/boxbackup/commit/41e8e5025b47c2b24c5fef18a8ccf9a133430770
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Fix Makefile dependency tracking of configured files

This allows protocol files to be regenerated automatically if
makeprotocol.pl.in changes, and similarly exception files and
makeexception.pl.in.


  Commit: 3dd9d73deaee2f4e5ca0df938276bd8b07e9b187
      https://github.com/boxbackup/boxbackup/commit/3dd9d73deaee2f4e5ca0df938276bd8b07e9b187
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2017-11-11 (Sat, 11 Nov 2017)

  Changed paths:
    M bin/bbackupctl/bbackupctl.cpp
    M bin/bbackupquery/bbackupquery.cpp
    M lib/bbackupd/BackupDaemon.cpp
    M lib/bbstored/BBStoreDHousekeeping.cpp
    M lib/common/CommonException.txt
    M lib/common/FdGetLine.cpp
    M lib/common/FdGetLine.h
    R lib/common/GetLine.cpp
    R lib/common/GetLine.h
    M lib/common/IOStream.cpp
    M lib/common/IOStreamGetLine.cpp
    M lib/common/IOStreamGetLine.h
    A lib/common/LineBuffer.cpp
    A lib/common/LineBuffer.h
    M lib/httpserver/HTTPException.txt
    M lib/httpserver/HTTPHeaders.cpp
    M lib/httpserver/HTTPRequest.cpp
    M lib/httpserver/HTTPResponse.cpp
    M lib/httpserver/S3Simulator.cpp
    M lib/httpserver/S3Simulator.h
    M lib/server/ServerControl.cpp
    M lib/server/SocketStream.cpp
    A test/backupstore/testfiles/bbackupd.conf
    A test/backupstore/testfiles/s3simulator.conf
    M test/backupstorefix/testbackupstorefix.cpp
    M test/basicserver/testbasicserver.cpp
    M test/bbackupd/testbbackupd.cpp
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Refactor GetLine

The class name was a problem, because the method that we want to call on it is
also called GetLine, which looks too much like a constructor in C++, so I
renamed it to LineBuffer.  I haven't yet renamed the child classes.

Also, it was impossible to distinguish between the different causes of
GetLine() returning false (timeout and signal) and EOF could only be checked by
calling a different function. Now all of these causes throw different
exceptions.

This really fixes the problem with attaching a debugger to a process waiting in
GetLine, which would previously cause the read() to return immediately with
EINTR, which we never retried because it looked like a timeout.


  Commit: ef9071e6ef211498149ade830694c87aa704371f
      https://github.com/boxbackup/boxbackup/commit/ef9071e6ef211498149ade830694c87aa704371f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/common/DebugMemLeakFinder.cpp
    M lib/common/MemLeakFinder.h

  Log Message:
  -----------
  Implement placement operator delete

"If the object is being created as part of a new expression, and an exception
is thrown, the object’s memory is deallocated by calling the appropriate
deallocation function. If the object is being created with a placement new
operator, the corresponding placement delete operator is called—that is, the
delete function that takes the same additional parameters as the placement new
operator. If no matching placement delete is found, no deallocation takes
place."

So to avoid memory leaks, we need to implement placement delete operators that
correspond to our placement new, which we use for leak detection (ironically)
in debug builds.

(cherry picked from commit 40cf96207139a31466b98a93298cef4f436eea6b)
(cherry picked from commit 242fac41c63309f274992825cd0baef9046e1110)


  Commit: a00aba6f85455006392315bbf20f8a06e177929b
      https://github.com/boxbackup/boxbackup/commit/a00aba6f85455006392315bbf20f8a06e177929b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupclient/BackupDaemonConfigVerify.cpp
    M lib/backupstore/BackupAccountControl.cpp
    M lib/httpserver/S3Client.h

  Log Message:
  -----------
  Enable support for S3 virtual hosts in BackupAccountControl

This enables the S3 bucket name to be included in the virtual hostname, for
example bucketname.s3.amazonaws.com, when connecting to a different hostname
such as localhost. This makes bucket names usable in tests with
BackupAccountControl.


  Commit: e513e4f90634e014c6af82549b4c347631706ded
      https://github.com/boxbackup/boxbackup/commit/e513e4f90634e014c6af82549b4c347631706ded
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreException.txt

  Log Message:
  -----------
  Properly implement S3BackupFileSystem::GetPermanentRefCountDatabase


  Commit: 5ac2c48bccb3e7b524cf744554880dc05a3d1f22
      https://github.com/boxbackup/boxbackup/commit/5ac2c48bccb3e7b524cf744554880dc05a3d1f22
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp

  Log Message:
  -----------
  Remove always-false assertion in S3BackupFileSystem::GetDirectory

This was designed to stop untested code from running. Now we are ready to use
this code, with tests soon to come.


  Commit: 35c8c8307b6854a2bbd88243ad7e6e5ad5d4a964
      https://github.com/boxbackup/boxbackup/commit/35c8c8307b6854a2bbd88243ad7e6e5ad5d4a964
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Add store test helpers for specialised tests


  Commit: db71ab26217b6bc01606ca49748b1ceb3068b6ec
      https://github.com/boxbackup/boxbackup/commit/db71ab26217b6bc01606ca49748b1ceb3068b6ec
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupStoreContext.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Make BackupStoreContext::ClearDirectoryCache() public

Needed to clear the cache in backupstore tests specialised for S3.


  Commit: 0b776c9fa6a99750a79ec43b47eb9ae198229c6b
      https://github.com/boxbackup/boxbackup/commit/0b776c9fa6a99750a79ec43b47eb9ae198229c6b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/httpserver/testhttpserver.cpp

  Log Message:
  -----------
  Test that 100-continue headers are sent and received correctly

This tests that HTTPRequest::SendHeaders includes the "Expect: 100-continue"
header only when expected. A separate test calls HTTPRequest::SendWithStream
which sends these headers, and therefore checks that both sides correctly
handle such exchanges.


  Commit: 69fc23bf1fe4300bfec92f331edc0aeafa6150fd
      https://github.com/boxbackup/boxbackup/commit/69fc23bf1fe4300bfec92f331edc0aeafa6150fd
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.h
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupProtocol.h
    M lib/common/Test.cpp
    M lib/common/Test.h
    M lib/httpserver/S3Client.cpp
    M lib/server/makeprotocol.pl.in
    M modules.txt
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Test that the S3 backend properly implements basic commands

This extends test_server_commands() to the S3 backend implementation, using
test specialisation.


  Commit: 58b80811494f2e3fa5d955a512c09a1367dfaaba
      https://github.com/boxbackup/boxbackup/commit/58b80811494f2e3fa5d955a512c09a1367dfaaba
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/buildenv-testmain-template.cpp

  Log Message:
  -----------
  Completely disable syslog logging in tests

(cherry picked from commit 3a8ca0c97e7346912889df72a1a87b80b430fe7a)


  Commit: 482c83ff174c0443cdae11f7ed1b6b157bae328c
      https://github.com/boxbackup/boxbackup/commit/482c83ff174c0443cdae11f7ed1b6b157bae328c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    R infrastructure/cmake/build/bin_bbackupd.vcxproj.user
    R infrastructure/cmake/build/bin_bbstored.vcxproj.user
    R infrastructure/cmake/build/test_backupstore.vcxproj.user
    R infrastructure/cmake/build/test_backupstorefix.vcxproj.user
    R infrastructure/cmake/build/test_bbackupd.vcxproj.user
    R infrastructure/cmake/build/test_common.vcxproj.user
    R infrastructure/cmake/build/test_httpserver.vcxproj.user
    R infrastructure/cmake/build/test_raidfile.vcxproj.user

  Log Message:
  -----------
  Remove *.vcxproj.user from disposable CMake build directory

(cherry picked from commit 9df71c89a0fc935ee9965ddd8c4bcc2e1ad769a4)


  Commit: 6c5f7dea4aca99f82e23b8d1b0393119d447dae9
      https://github.com/boxbackup/boxbackup/commit/6c5f7dea4aca99f82e23b8d1b0393119d447dae9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/m4/boxbackup_tests.m4
    M lib/bbackupd/BackupClientContext.cpp
    M lib/bbackupd/BackupClientContext.h
    M lib/server/TcpNice.cpp
    M lib/server/TcpNice.h

  Log Message:
  -----------
  Add support for TcpNice on OSX, remove on Windows

I'm not convinced that it does anything on Windows without an RTT estimate,
which we can't get without administrator access:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb485738(v=vs.85).aspx

(cherry picked from commit b646d22f415bbc8f5b5b065ed7462166591404f2)


  Commit: 9f95b0431194533d25d9252f009cec9aa2e66752
      https://github.com/boxbackup/boxbackup/commit/9f95b0431194533d25d9252f009cec9aa2e66752
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp

  Log Message:
  -----------
  Move functions around to reduce diffs to s3_support


  Commit: c053c68498397f82c2bcc73d2c6f2e694368e2d4
      https://github.com/boxbackup/boxbackup/commit/c053c68498397f82c2bcc73d2c6f2e694368e2d4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp
    M lib/backupstore/BackupAccountControl.h
    M lib/win32/getopt_long.cpp

  Log Message:
  -----------
  Fix compile error in BSD getopt_long.cpp

error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]


  Commit: 4dec19a41d9ae785df71900933e48813c8ef2034
      https://github.com/boxbackup/boxbackup/commit/4dec19a41d9ae785df71900933e48813c8ef2034
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/httpserver/SimpleDBClient.h

  Log Message:
  -----------
  Fix SimpleDB timeouts: should be in milliseconds, not seconds

(cherry picked from commit 24bc49f30b9ce54d5024777f9c34d70a476d9663)


  Commit: e00ba6e85fc103b2195d8fd022771be4f30de6f3
      https://github.com/boxbackup/boxbackup/commit/e00ba6e85fc103b2195d8fd022771be4f30de6f3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/server/ServerStream.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  ServerStream and test/backupstore: improve comments slightly

(cherry picked from commit c50aac67ee6ce6af9d63d5b96290585f2c5b7c21)


  Commit: 4155544b0cbc1f08ef23ec754d03b6ac68067edd
      https://github.com/boxbackup/boxbackup/commit/4155544b0cbc1f08ef23ec754d03b6ac68067edd
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/httpserver/S3Simulator.cpp

  Log Message:
  -----------
  S3Simulator: add some TRACE logging to help debug 100-continue responses

(cherry picked from commit ca39b88d4a73b64de68400dfa29270f203fd0f14)


  Commit: 65051c88ef1fe80101a370c028ada3d8c5fe0e0b
      https://github.com/boxbackup/boxbackup/commit/65051c88ef1fe80101a370c028ada3d8c5fe0e0b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/httpserver/S3Client.h

  Log Message:
  -----------
  Increase timeouts in S3Client to help with debugging

(cherry picked from commit cc14b3b4b9ec509233000c7d0a995580afd97f15)


  Commit: 0943f51388bcbd6d79c4a8add3d488fb2d1550a2
      https://github.com/boxbackup/boxbackup/commit/0943f51388bcbd6d79c4a8add3d488fb2d1550a2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/server/SocketStream.cpp

  Log Message:
  -----------
  SocketStream: use THROW_SOCKET_ERROR for better messages on Windows

(cherry picked from commit feddbef8052208508a2e542a1a70c23138f476b8)


  Commit: 13e66ee8e9add83ccf1cc1d78801b9daf291880c
      https://github.com/boxbackup/boxbackup/commit/13e66ee8e9add83ccf1cc1d78801b9daf291880c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/common/Logging.cpp
    M lib/common/Logging.h

  Log Message:
  -----------
  Enable overriding log level by category as well as filename

This extends the -L command-line option to allow overriding by
filename/category=level as well as the existing support for overriding by
filename=level.

(cherry picked from commit 4421c53ab59adb494308f9c9f881a6a57bfd571c)


  Commit: ed500780e2ba1a823af3941a24ed40f24b45ee10
      https://github.com/boxbackup/boxbackup/commit/ed500780e2ba1a823af3941a24ed40f24b45ee10
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/win32/emu.cpp

  Log Message:
  -----------
  Windows syslog() emulation: improve error messages

If syslog can't log to the Windows event log for some reason, instead of
just printing the log message to the console, include some explanatory
text about what went wrong.

(cherry picked from commit c492c90062d2e88db1016f13bd912629477a8a46)


  Commit: 025e0325704b40c05ebfc4953f6891abbb67d6e0
      https://github.com/boxbackup/boxbackup/commit/025e0325704b40c05ebfc4953f6891abbb67d6e0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp

  Log Message:
  -----------
  Fix rare crash while tearing down S3BackupFileSystem

ReleaseLock() could fail if it can't contact the S3/SimpleDB server, but
destructors aren't allowed to throw exceptions, so catch this case and log
a warning instead (because we failed to release the lock that we were
holding).

(cherry picked from commit 6226c014dd2988a6a29cd21f6cc29fa0e7816607)


  Commit: 018f84e4f0a17a9ed14560650f0f5269f3e88a70
      https://github.com/boxbackup/boxbackup/commit/018f84e4f0a17a9ed14560650f0f5269f3e88a70
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/bbackupd/testbbackupd.cpp

  Log Message:
  -----------
  Increase time allowed for backup in test_store_error_reporting

Should increase reliability of tests running on Travis.


  Commit: 5a00bbc2fbc4a61ad1ef3fbd26f6cf290893166a
      https://github.com/boxbackup/boxbackup/commit/5a00bbc2fbc4a61ad1ef3fbd26f6cf290893166a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4

  Log Message:
  -----------
  Enable precedence warnings as errors (-Werror=parentheses)


  Commit: e516f59e3328e6026ea26ba80f4ac6281212fed7
      https://github.com/boxbackup/boxbackup/commit/e516f59e3328e6026ea26ba80f4ac6281212fed7
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/common/Timer.cpp
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Remove invalid use of null references (undefined behaviour)

Enable the relevant compiler warning as an error, if supported
(-Werror=undefined-bool-conversion).

http://www.gotw.ca/conv/002.htm
http://stackoverflow.com/questions/2165078/a-reference-can-not-be-null-or-it-can-be-null

(cherry picked from commit f2911acac0c8375a08ecc0a55f853a5a59c4d511)


  Commit: 92c05cac1f61afabaaaf38f269ab32f74463e93b
      https://github.com/boxbackup/boxbackup/commit/92c05cac1f61afabaaaf38f269ab32f74463e93b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupStoreFileEncodeStream.cpp
    M lib/backupstore/BackupStoreFileEncodeStream.h

  Log Message:
  -----------
  Enable errors on unused private fields (-Werror=unused-private-field)

Fix compile failure due to unused private field.  In CMake release builds,
RaidBackupFileSystem::mDiscSet was initialized but never read, and this was
detected by -Werror,-Wunused-private-field.

Now the field is totally compiled out of release builds, and by using the
correct preprocessor define, CMake and the Perl buildsystem now behave the
same.

(cherry picked from commit d0f88e70f9c841bf2f8baedb89ec28523b2e357d)


  Commit: 5c95d928ee84e076db26853f6308a98cc7f403f9
      https://github.com/boxbackup/boxbackup/commit/5c95d928ee84e076db26853f6308a98cc7f403f9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp
    M lib/backupstore/BackupAccountControl.cpp

  Log Message:
  -----------
  Make BackupAccountControl throw exceptions on lock failure

Remove the compatibility code that caught these exceptions and made the
functions return 1 instead of throwing the exception. Make bbstoreaccounts
catch these exceptions and exit with status 1 instead.


  Commit: 95be9a668303adea8ad2826bd7996d97527b1c33
      https://github.com/boxbackup/boxbackup/commit/95be9a668303adea8ad2826bd7996d97527b1c33
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp

  Log Message:
  -----------
  bbstoreaccounts: more refactoring to support non-raidfile backends


  Commit: f17b2da5e02b430af61f397a502839d1c6170acf
      https://github.com/boxbackup/boxbackup/commit/f17b2da5e02b430af61f397a502839d1c6170acf
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupCommands.cpp

  Log Message:
  -----------
  Remove unused #includes from BackupCommands.cpp


  Commit: be929a159c1a02decca10f20686fb8c0218d4b75
      https://github.com/boxbackup/boxbackup/commit/be929a159c1a02decca10f20686fb8c0218d4b75
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupConstants.h
    M lib/backupstore/StoreStructure.cpp

  Log Message:
  -----------
  Add a constant for WRITE_LOCK_FILENAME


  Commit: 3c212e8f1134361f2bc7f9f68076133f1cf37214
      https://github.com/boxbackup/boxbackup/commit/3c212e8f1134361f2bc7f9f68076133f1cf37214
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp

  Log Message:
  -----------
  Fix S3BackupFileSystem::GetAccountIdentifier() exception

This makes it possible to call GetAccountIdentifier() on an account which
doesn't currently have a BackupStoreInfo file, which allows us to log something
relating to the account while locking it while creating it (and the
BackupStoreInfo file).


  Commit: 2319f018999037136e5be002eb4c49df5395da76
      https://github.com/boxbackup/boxbackup/commit/2319f018999037136e5be002eb4c49df5395da76
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/BackupStoreCheck.cpp
    M lib/backupstore/BackupStoreContext.cpp
    M lib/backupstore/HousekeepStoreAccount.cpp
    M lib/backupstore/StoreTestUtils.cpp

  Log Message:
  -----------
  Generalise BackupFileSystem::GetLock and reuse it

This reduces code duplication (multiple implementations of locking retries) and
also enables centralised logging of locking attempts, which can be more easily
fine-tuned.

(cherry picked from commit 0469e4a3bd7318547294ec5309aabffa488fc67f)


  Commit: ff34032345f6f9694e18ab227a9c5168662c285f
      https://github.com/boxbackup/boxbackup/commit/ff34032345f6f9694e18ab227a9c5168662c285f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/win32/getopt_long.cpp

  Log Message:
  -----------
  Only replace getopt on Windows, not any other platform

The preprocessor test was wrong, causing this code to be built (and potentially
replace the system getopt/long) on all platforms. This made it impossible to
build with -Werror=writable-strings on Unix without modifying this file further
to fix its casting of static strings to mutable pointers.


  Commit: 01086537428a173c0ceb1557012f857cf321c5f8
      https://github.com/boxbackup/boxbackup/commit/01086537428a173c0ceb1557012f857cf321c5f8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/common/Utils.cpp

  Log Message:
  -----------
  Enable -Werror=writable-strings and fix one such error


  Commit: 2f6e9654a25c8ee89bd8515a9f71674b1e65615f
      https://github.com/boxbackup/boxbackup/commit/2f6e9654a25c8ee89bd8515a9f71674b1e65615f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/server/makeprotocol.pl.in
    M test/basicserver/TestCommands.cpp
    M test/basicserver/TestProtocol.txt
    M test/basicserver/testbasicserver.cpp

  Log Message:
  -----------
  Fix ProtocolError single-argument (subtype only) constructor

Correctly initialise mType from the ErrorType CONSTANT in the protocol message
definition in this case, instead of leaving it uninitialised. Add test. Also
test that these unexpected errors cause the connection to be closed as
expected.

Also catch SIGPIPE so that the test doesn't die when the server process closes
the connection to it.


  Commit: 22a8613ed523ffc5882021f4725ddd24320ba813
      https://github.com/boxbackup/boxbackup/commit/22a8613ed523ffc5882021f4725ddd24320ba813
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

  Log Message:
  -----------
  Fix build order for targets which depend on auto-generated files

These auto-generated files should always be rebuilt first, and hence must be
listed first in the dependencies. Otherwise, if we add a command to a
Protocol.txt file and also implement that command in the Commands.cpp source
file, we might try to compile Commands.cpp before rebuilding
autogen_Protocol.h, which will fail with a compile error, which prevents Make
from reaching the autogen_Protocol.cpp target which would cause the header file
to be updated as a side effect, which would resolve the compile error.


  Commit: 07a7b318ed07ec37f16dc186d39e954146e2d590
      https://github.com/boxbackup/boxbackup/commit/07a7b318ed07ec37f16dc186d39e954146e2d590
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/basicserver/testbasicserver.cpp

  Log Message:
  -----------
  Check for both SocketReadError and SocketWriteError

Depending on timing, we might get to send our message (in the test) and then
fail to read the reply, or fail during writing instead.


  Commit: d325f01fd9c593283a8a189900afb9f0fc30c49f
      https://github.com/boxbackup/boxbackup/commit/d325f01fd9c593283a8a189900afb9f0fc30c49f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/m4/boxbackup_tests.m4

  Log Message:
  -----------
  Fix GCC warnings about -Wno-* flags

GCC suppresses warnings for -Wno-* flags unless another error occurs, so we
need to use the opposite flag for detection purposes. Add an optional second
argument to BOX_CHECK_CXX_FLAG to allow specifying that detection flag.

(cherry picked from commit dd7377e3593f96b85cf82b446fe28a86f713fe61)


  Commit: 079e871f0ac860f52b6128d3930babb40d39d447
      https://github.com/boxbackup/boxbackup/commit/079e871f0ac860f52b6128d3930babb40d39d447
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Fix cleanup of backupstore specialised tests

In case of exception, ensure that teardown code is always run, to release
filesystem lock before deleting files in standard tearDown().

(cherry picked from commit 69f205bafe925548d799df13d01d2e8ea5e5e7bc)


  Commit: c0e19ba1bea7d68197de34e9571ecc2d7fd52642
      https://github.com/boxbackup/boxbackup/commit/c0e19ba1bea7d68197de34e9571ecc2d7fd52642
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Port test_server_housekeeping to BackupFileSystem


  Commit: 769405937d27b839cf8efe7f38d85835e8eceb84
      https://github.com/boxbackup/boxbackup/commit/769405937d27b839cf8efe7f38d85835e8eceb84
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Fix 5f6680520574f15b97f92e151d93efc40be0f100

Don't swallow exceptions by returning before rethrowing them


  Commit: 75c2724455894a690b1d26145e97dc0d4d00981d
      https://github.com/boxbackup/boxbackup/commit/75c2724455894a690b1d26145e97dc0d4d00981d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Port test_directory_parent_entry_tracks_directory_size to BackupFileSystem

Implement as a specialised test, and run on S3 as well.

This requires implementation of S3BackupFileSystem::DeleteFile and
DeleteDirectory, and a version of change_account_limits which takes a
reference to a BackupAccountControl.


  Commit: a19124c7caf43317afe88cc93145d14a798b9b6f
      https://github.com/boxbackup/boxbackup/commit/a19124c7caf43317afe88cc93145d14a798b9b6f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h

  Log Message:
  -----------
  Add detailed logging of BackupFileSystem locks

This logging is categorised, so it can be enabled with fine-tuning using the -L
command-line option.

(cherry picked from commit 7a2572c446b4a95f18eda04e72f6aabfd9544e04)


  Commit: 7a863f239eb8aa92443da221870565e99660b51e
      https://github.com/boxbackup/boxbackup/commit/7a863f239eb8aa92443da221870565e99660b51e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/win32/emu.h

  Log Message:
  -----------
  Fix missing define causing unnecessary stat() on Windows

(cherry picked from commit c38e93f27ebcad6572b2cc17e4e74bf8315ddca2)


  Commit: a8090b050b460a7a9e0df70178042c6f4e4d3759
      https://github.com/boxbackup/boxbackup/commit/a8090b050b460a7a9e0df70178042c6f4e4d3759
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/bbackupd/BackupClientInodeToIDMap.cpp

  Log Message:
  -----------
  Remove duplicate QDBM logging macros from BackupClientInodeToIDMap.cpp


  Commit: 85627284884480e66aa9e0114c6381f97089c23f
      https://github.com/boxbackup/boxbackup/commit/85627284884480e66aa9e0114c6381f97089c23f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstorefix/testbackupstorefix.cpp

  Log Message:
  -----------
  Enable detailed logging of locking in test/backupstorefix

This should help diagnose occasional locking problems causing test failures on
AppVeyor.

(cherry picked from commit 94f75ac0476c2264ed80f51c5d4014639dccb407)


  Commit: 8744de0723d0621d9986a79e565c69e0ce60b452
      https://github.com/boxbackup/boxbackup/commit/8744de0723d0621d9986a79e565c69e0ce60b452
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/cmake/CMakeLists.txt
    M lib/common/Logging.cpp
    M lib/common/Logging.h

  Log Message:
  -----------
  Allow using LogLevelOverrideByFileGuard as a guard

After calling its Install() method, the guard will be installed in the central
logging configuration, and will automatically be uninstalled when the object
goes out of scope and is destroyed.

(cherry picked from commit 2b5b65b2dccfa2a88688e0103dc4996a039c515c)


  Commit: 6d48c54051603810fea967ba6e6806d313653df5
      https://github.com/boxbackup/boxbackup/commit/6d48c54051603810fea967ba6e6806d313653df5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupStoreAccounts.cpp
    M lib/backupstore/BackupStoreAccounts.h
    M test/backupstorefix/testbackupstorefix.cpp
    M test/bbackupd/testbbackupd.cpp

  Log Message:
  -----------
  Remove BackupStoreAccounts::LockAccount

Replace with BackupFileSystem::GetLock where used (only in tests at this
point).


  Commit: 3a7c17691c06b023d24e5f603481bc38b8272c40
      https://github.com/boxbackup/boxbackup/commit/3a7c17691c06b023d24e5f603481bc38b8272c40
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/common/testcommon.cpp

  Log Message:
  -----------
  test/common: use setup and teardown macros on each test case


  Commit: 94d61c326efce024e8b76ba7f6a92caa378438e1
      https://github.com/boxbackup/boxbackup/commit/94d61c326efce024e8b76ba7f6a92caa378438e1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Add tests for exclusivity of locking


  Commit: eb2d455931904b6d5f5d87b7e5cd2ab3cd0615c3
      https://github.com/boxbackup/boxbackup/commit/eb2d455931904b6d5f5d87b7e5cd2ab3cd0615c3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M appveyor.yml

  Log Message:
  -----------
  Mark master branch builds as full releases (not pre-releases) on GitHub


  Commit: 94c136343ed312e6a44ca185b6e58677adcde34e
      https://github.com/boxbackup/boxbackup/commit/94c136343ed312e6a44ca185b6e58677adcde34e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/backupclient/BackupDaemonConfigVerify.cpp
    M lib/backupstore/BackupFileSystem.cpp
    M lib/backupstore/BackupFileSystem.h
    M lib/common/Configuration.h
    M test/backupstore/testbackupstore.cpp
    M test/backupstore/testfiles/bbackupd.conf
    M test/s3store/testfiles/bbackupd.conf

  Log Message:
  -----------
  Add S3 BackupFileSystem locking using SimpleDB


  Commit: 6d264b738348f310ec9440998f835054529d1cee
      https://github.com/boxbackup/boxbackup/commit/6d264b738348f310ec9440998f835054529d1cee
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M appveyor.yml
    M infrastructure/cmake/windows/CMakeLists.txt

  Log Message:
  -----------
  Build 64-bit OpenSSL in Windows superbuild


  Commit: b3642446f7e5af13da69c2368c1441db5c2599d1
      https://github.com/boxbackup/boxbackup/commit/b3642446f7e5af13da69c2368c1441db5c2599d1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupStoreContext.cpp

  Log Message:
  -----------
  BackupStoreContext: improve log messages regarding the cache


  Commit: 4308764341eb8bbed27f94bbab2e663ebb470f50
      https://github.com/boxbackup/boxbackup/commit/4308764341eb8bbed27f94bbab2e663ebb470f50
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp

  Log Message:
  -----------
  BackupAccountControl: silence exceptions during CreateAccount

We expect that the raidfile or HTTP file doesn't exist during CreateAccount, so
the exception message is unhelpful, so suppress it.


  Commit: ac6e1edc067f31a36ea159fd6adbf9ef2356bf44
      https://github.com/boxbackup/boxbackup/commit/ac6e1edc067f31a36ea159fd6adbf9ef2356bf44
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/StoreTestUtils.cpp
    M lib/backupstore/StoreTestUtils.h
    M test/backupstore/testbackupstore.cpp
    M test/bbackupd/testbbackupd.cpp

  Log Message:
  -----------
  Remove remaining calls to check_num_files() without a BackupFileSystem


  Commit: cb25823e008c0718fe0aa3078225a50775f8f404
      https://github.com/boxbackup/boxbackup/commit/cb25823e008c0718fe0aa3078225a50775f8f404
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupStoreInfo.cpp
    M lib/backupstore/BackupStoreInfo.h
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Refactor BackupStoreInfo to remove legacy RaidFile support


  Commit: cf52c5030c8b80aeefb2a0a0a42bd82829b806c8
      https://github.com/boxbackup/boxbackup/commit/cf52c5030c8b80aeefb2a0a0a42bd82829b806c8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Run test_account_limits_respected on S3 BackupFileSystem


  Commit: c337d040f9eb8263febc3aa23afeb7e897c7f657
      https://github.com/boxbackup/boxbackup/commit/c337d040f9eb8263febc3aa23afeb7e897c7f657
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

  Log Message:
  -----------
  Add a test for S3BackupFileSystem and its RevisionID calculation


  Commit: b8447f7b8b388daff84f7f810dd0705976c74f6e
      https://github.com/boxbackup/boxbackup/commit/b8447f7b8b388daff84f7f810dd0705976c74f6e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstorefix/testbackupstorefix.cpp

  Log Message:
  -----------
  Refactor testbackupstorefix to reduce code duplication


  Commit: 320ae10198b2cb3f9a99c4a7da74897a3d4d7d95
      https://github.com/boxbackup/boxbackup/commit/320ae10198b2cb3f9a99c4a7da74897a3d4d7d95
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M test/backupstorepatch/testbackupstorepatch.cpp

  Log Message:
  -----------
  testbackupstorepatch: improve debugging messages


  Commit: 7236bcf426f3842d28ca1a30081dfd689257c8dc
      https://github.com/boxbackup/boxbackup/commit/7236bcf426f3842d28ca1a30081dfd689257c8dc
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.h
    M test/backupstorepatch/testbackupstorepatch.cpp

  Log Message:
  -----------
  Port test/backupstorepatch to use BackupFileSystem

Make testbackupstorepatch do housekeeping in-process to make debugging easier.
Check return value of housekeeping to ensure that no errors were detected.


  Commit: 445c7e721a600cca865b93ec43bebeacb1b97088
      https://github.com/boxbackup/boxbackup/commit/445c7e721a600cca865b93ec43bebeacb1b97088
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/bbackupd/BackupDaemon.cpp
    M lib/bbstored/BBStoreDHousekeeping.cpp

  Log Message:
  -----------
  Suppress exception messages in LineBuffer::GetLine

These exceptions are used to communicate state to the caller, and should not be
treated as errors in common cases.

(cherry picked from commit 86f3e9c0f4916741bbed20e04a4b4f2d71bb4f32)


  Commit: f5a786779277627ca40c76d42fbab9b36ec9eaab
      https://github.com/boxbackup/boxbackup/commit/f5a786779277627ca40c76d42fbab9b36ec9eaab
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/bbstored/BBStoreDHousekeeping.cpp
    M lib/bbstored/BackupStoreDaemon.cpp
    M lib/server/Daemon.cpp
    M lib/server/Daemon.h
    M lib/server/ServerStream.h

  Log Message:
  -----------
  Clear up Daemon command-line arguments -D and -F

By separating their roles (which used to overlap) it's now possible to run a
forking server in the foreground, or a non-forking daemon in the background,
which can be useful for debugging (for example, to more closely simulate how
test daemons work on Windows when running on Unix). -DF is now needed to
have a non-forking server in the foreground.

(cherry picked from commit b31c0e4abd4875bb25ff7a918ed5bc7f7faf595d)


  Commit: 5cfe9afde9b928577ae68f1264f7c588695768d9
      https://github.com/boxbackup/boxbackup/commit/5cfe9afde9b928577ae68f1264f7c588695768d9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M lib/common/NamedLock.cpp
    M lib/common/NamedLock.h

  Log Message:
  -----------
  Eliminate conditional code for Windows file handles from NamedLock

Should improve code readability and robustness.

(cherry picked from commit e773e4ccefcdab8f01b1a3bf7d828c3bb39eaaa7)


  Commit: 6010f602c4ab099880d18350aea7a3583c9be9ed
      https://github.com/boxbackup/boxbackup/commit/6010f602c4ab099880d18350aea7a3583c9be9ed
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-14 (Sun, 14 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4
    M lib/common/CommonException.txt
    M lib/common/NamedLock.cpp
    M lib/common/NamedLock.h
    M test/common/testcommon.cpp

  Log Message:
  -----------
  Improve NamedLock code readability, reliability and logging

Define our own preprocessor defines for lock methods, test that we cover every
case at compile time ad that they have the semantics that we expect (reentrant
or not).

Add support for F_OFD_SETLK, a non-reentrant lock type offered by Linux, and
ensure that this and FLOCK are chosen in preference to F_SETLK locks, which are
reentrant.

(cherry picked from commit de1911b132310a1d5f1073928036db00abe0ef20)
(cherry picked from commit 96136adf5dbe38ef92ad3f9490b549c11dd91fd4)


  Commit: e5c859b19459dccb327066de13d448ab1ee80d5d
      https://github.com/boxbackup/boxbackup/commit/e5c859b19459dccb327066de13d448ab1ee80d5d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-14 (Sun, 14 Jan 2018)

  Changed paths:
    M appveyor.yml
    M infrastructure/cmake/CMakeLists.txt
    M infrastructure/cmake/windows/CMakeLists.txt
    M lib/crypto/CipherBlowfish.cpp
    M lib/crypto/CipherContext.cpp
    M lib/crypto/CipherContext.h
    M lib/crypto/CipherException.txt
    M lib/server/TLSContext.cpp
    M test/crypto/testcrypto.cpp

  Log Message:
  -----------
  Add support for OpenSSL 1.1 and replace deprecated function calls

See https://github.com/boxbackup/boxbackup/issues/16 for details. Thanks to
Chris West @FauxFaux for the initial patch!

Use OpenSSL 1.1.0g for Windows superbuild.

Fix Windows build by removing calls to obsolete do_ms.bat
<https://stackoverflow.com/questions/39076244/why-there-is-no-ms-do-ms-bat-after-perl-configure-vc-win64a/39247560#39247560>.

Workaround for incorrect library suffixes searched by FindOpenSSL
<https://gitlab.kitware.com/cmake/cmake/issues/17604>.

Link OpenSSL statically and fix missing dependency on crypt32.lib.

(cherry picked from commit edd3687f067c68b131822e0064cdeff5bf7a3835)
(cherry picked from commit b003e009d1fccadf55a0f59a01c66f7b80f9b3e5)
(cherry picked from commit cc6e20466b857f7e20d816a2c20cb36f112398ab)
(cherry picked from commit 303c6405e3bc1e673dbc691792e0633742c01f4e)
(cherry picked from commit 4e24006f75142a254f1a7db76cf9da1e752d9283)
(cherry picked from commit 448ac48a89538f67f508f8d21931c5e6e90472c0)
(cherry picked from commit 00b3bb0697219ef8c742698dd43d53b538e362b1)
(cherry picked from commit 85e7efc3fa0477f60318d2cd2144503a9ea8feb9)


  Commit: 42798c09b437ae6ba21c296c1b9914d012cc124a
      https://github.com/boxbackup/boxbackup/commit/42798c09b437ae6ba21c296c1b9914d012cc124a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-14 (Sun, 14 Jan 2018)

  Changed paths:
    M lib/server/ServerControl.cpp
    M test/basicserver/testbasicserver.cpp

  Log Message:
  -----------
  Improve logging in test/basicserver to help debug FreeBSD test failures


  Commit: fdd5276d466d73d65472ba146708ed0602d52c66
      https://github.com/boxbackup/boxbackup/commit/fdd5276d466d73d65472ba146708ed0602d52c66
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-14 (Sun, 14 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4

  Log Message:
  -----------
  Move check for -Werror=narrowing to join other -Werror checks


  Commit: 6a8f093218aba50063022ba41c497db790a3f0f5
      https://github.com/boxbackup/boxbackup/commit/6a8f093218aba50063022ba41c497db790a3f0f5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/server/Protocol.cpp

  Log Message:
  -----------
  Add protocol logging to help debug test/basicserver timeouts on FreeBSD


Compare: https://github.com/boxbackup/boxbackup/compare/f4bf9ec324c8^...6a8f093218ab


More information about the Boxbackup-commit mailing list