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

GitHub noreply at github.com
Mon Jan 15 21:51:42 GMT 2018


  Branch: refs/heads/s3_support_merge
  Home:   https://github.com/boxbackup/boxbackup
  Commit: ddbd18f29ff595f15135b7a4e4a4b14562ce9828
      https://github.com/boxbackup/boxbackup/commit/ddbd18f29ff595f15135b7a4e4a4b14562ce9828
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 091555341fd113fd4f4f64c67eebfd62dddfea81
      https://github.com/boxbackup/boxbackup/commit/091555341fd113fd4f4f64c67eebfd62dddfea81
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: affc81a5e4920c0a661f397a1029700167b5e113
      https://github.com/boxbackup/boxbackup/commit/affc81a5e4920c0a661f397a1029700167b5e113
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 054ae876e892eab12fb89a2812ee552fab9c0d27
      https://github.com/boxbackup/boxbackup/commit/054ae876e892eab12fb89a2812ee552fab9c0d27
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 61587bdc27a6b59be43bb96255b787202ced663d
      https://github.com/boxbackup/boxbackup/commit/61587bdc27a6b59be43bb96255b787202ced663d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.h

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

(cherry picked from commit 085149bf1c2c287ee744f2e094a99a77fc89dc60)


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

  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: f4f026194b9146cebc14712ded5786389c12c882
      https://github.com/boxbackup/boxbackup/commit/f4f026194b9146cebc14712ded5786389c12c882
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/backupstorefix/testbackupstorefix.cpp

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

(cherry picked from commit c31d7143273f2d5257ec690e894442a8398aaf21)


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

  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: bece5fe720528cf96cb57bd70d9b7f93195a0277
      https://github.com/boxbackup/boxbackup/commit/bece5fe720528cf96cb57bd70d9b7f93195a0277
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 4d7e654ffd3f9153e3e126253a05fcb42f22bdaa
      https://github.com/boxbackup/boxbackup/commit/4d7e654ffd3f9153e3e126253a05fcb42f22bdaa
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: d5c59cfa6c77b3ad991cbbca47fe797e5ac102b2
      https://github.com/boxbackup/boxbackup/commit/d5c59cfa6c77b3ad991cbbca47fe797e5ac102b2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 5f3b823718181a646082f1f1234186c4c43e23b3
      https://github.com/boxbackup/boxbackup/commit/5f3b823718181a646082f1f1234186c4c43e23b3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 2d86ee040be9aa9d9d839c43545f9492549ce35e
      https://github.com/boxbackup/boxbackup/commit/2d86ee040be9aa9d9d839c43545f9492549ce35e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 80ab4a9f1b6f786738aefdb319e195ee1839c624
      https://github.com/boxbackup/boxbackup/commit/80ab4a9f1b6f786738aefdb319e195ee1839c624
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 03556743acf8065025d40c5a85b485bc42ac81a2
      https://github.com/boxbackup/boxbackup/commit/03556743acf8065025d40c5a85b485bc42ac81a2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 2338aa8b31f49309d593b0113216a3a62066d8cc
      https://github.com/boxbackup/boxbackup/commit/2338aa8b31f49309d593b0113216a3a62066d8cc
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: bea63fd83f43eabfdb5968567331902e64c8f14c
      https://github.com/boxbackup/boxbackup/commit/bea63fd83f43eabfdb5968567331902e64c8f14c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: e64803b6936e8d5af2970de28d61075fe0cffc31
      https://github.com/boxbackup/boxbackup/commit/e64803b6936e8d5af2970de28d61075fe0cffc31
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 4c5c0b7c7563141ad7b6d922ab68fdb9702c38f0
      https://github.com/boxbackup/boxbackup/commit/4c5c0b7c7563141ad7b6d922ab68fdb9702c38f0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 4768ca497f7565df9264d7f341a67e6c98ec0153
      https://github.com/boxbackup/boxbackup/commit/4768ca497f7565df9264d7f341a67e6c98ec0153
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 8ec9aaa922a99e19c5e4603b89258a0eed34f356
      https://github.com/boxbackup/boxbackup/commit/8ec9aaa922a99e19c5e4603b89258a0eed34f356
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 4c89e5972915cc01ff9ed17cd1e3d4db4728e236
      https://github.com/boxbackup/boxbackup/commit/4c89e5972915cc01ff9ed17cd1e3d4db4728e236
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/common/testcommon.cpp

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


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

  Changed paths:
    M test/common/testcommon.cpp

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

Remove redundant NamedLock tests.


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

  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: 011fd40f21e677011c86ba9d6926c547ded33a8f
      https://github.com/boxbackup/boxbackup/commit/011fd40f21e677011c86ba9d6926c547ded33a8f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: e3a8dd4f4839beb8ed61a66b730165a8b1de9045
      https://github.com/boxbackup/boxbackup/commit/e3a8dd4f4839beb8ed61a66b730165a8b1de9045
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 3199cd883457039aeedf11bb76fdc5f04bf53ce8
      https://github.com/boxbackup/boxbackup/commit/3199cd883457039aeedf11bb76fdc5f04bf53ce8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: c49632e4416d99b614bfddcf640f1729f1740877
      https://github.com/boxbackup/boxbackup/commit/c49632e4416d99b614bfddcf640f1729f1740877
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 7c5110b5baaa711827e3812479983e9893a74b7f
      https://github.com/boxbackup/boxbackup/commit/7c5110b5baaa711827e3812479983e9893a74b7f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: b19bbca91e08274f87c6c4812c68e85488bb6569
      https://github.com/boxbackup/boxbackup/commit/b19bbca91e08274f87c6c4812c68e85488bb6569
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: af96b968e15b2c11cebe66f15e17d9913e581afe
      https://github.com/boxbackup/boxbackup/commit/af96b968e15b2c11cebe66f15e17d9913e581afe
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: fae96d2329f6daa4e16d4bd517acd003000b514a
      https://github.com/boxbackup/boxbackup/commit/fae96d2329f6daa4e16d4bd517acd003000b514a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 5382916629340063b10897a5118775dcf2efba70
      https://github.com/boxbackup/boxbackup/commit/5382916629340063b10897a5118775dcf2efba70
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: d5782133190ad28f6befa0d17c447e48f97a33bb
      https://github.com/boxbackup/boxbackup/commit/d5782133190ad28f6befa0d17c447e48f97a33bb
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 28c66f0fc3a3e4244ceec5e35d03734fc066c0a1
      https://github.com/boxbackup/boxbackup/commit/28c66f0fc3a3e4244ceec5e35d03734fc066c0a1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: ea99dcaa604d69411f7366f634d155134be29821
      https://github.com/boxbackup/boxbackup/commit/ea99dcaa604d69411f7366f634d155134be29821
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

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

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


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

  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: 0dac53b4a31263fe8976237702538cd258fc86e1
      https://github.com/boxbackup/boxbackup/commit/0dac53b4a31263fe8976237702538cd258fc86e1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 1b88a189a7aa7d27cc4efbb58fba52010f946c23
      https://github.com/boxbackup/boxbackup/commit/1b88a189a7aa7d27cc4efbb58fba52010f946c23
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: a18a23576e48df2679b0cc820d37f97b23f6c901
      https://github.com/boxbackup/boxbackup/commit/a18a23576e48df2679b0cc820d37f97b23f6c901
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 53d731fb9acb89b6af0f2d47053802ae9f207d6b
      https://github.com/boxbackup/boxbackup/commit/53d731fb9acb89b6af0f2d47053802ae9f207d6b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 97cf1c47edbef047680bbaa8f0328df313628896
      https://github.com/boxbackup/boxbackup/commit/97cf1c47edbef047680bbaa8f0328df313628896
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: ee0dfb5d91293c5904c1cfe89279ea46ff63fbf1
      https://github.com/boxbackup/boxbackup/commit/ee0dfb5d91293c5904c1cfe89279ea46ff63fbf1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 71de481d1f28d4a674ad9e7d68b7e8f76bbea901
      https://github.com/boxbackup/boxbackup/commit/71de481d1f28d4a674ad9e7d68b7e8f76bbea901
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 6ba7e2ba328f6b58ab5bd01d3d6b19cc6ce3ea87
      https://github.com/boxbackup/boxbackup/commit/6ba7e2ba328f6b58ab5bd01d3d6b19cc6ce3ea87
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

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

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


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

  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: 21f5ce8ba8bf4981b09d27b658ca64fa3144f4a5
      https://github.com/boxbackup/boxbackup/commit/21f5ce8ba8bf4981b09d27b658ca64fa3144f4a5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: c7423fbae071a9ad149e1c61e933bcc258efdfaf
      https://github.com/boxbackup/boxbackup/commit/c7423fbae071a9ad149e1c61e933bcc258efdfaf
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 6f030c0d0e4a7fb918379a1b7e4a1871bb788481
      https://github.com/boxbackup/boxbackup/commit/6f030c0d0e4a7fb918379a1b7e4a1871bb788481
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 255d17d5a2efb547ea064e68112c84c08b99c416
      https://github.com/boxbackup/boxbackup/commit/255d17d5a2efb547ea064e68112c84c08b99c416
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: edad605540ff8092eb462837522b45c66a84d084
      https://github.com/boxbackup/boxbackup/commit/edad605540ff8092eb462837522b45c66a84d084
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 72d40fd64d7caf604989bb58f56a3f872e731104
      https://github.com/boxbackup/boxbackup/commit/72d40fd64d7caf604989bb58f56a3f872e731104
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 924907956dff9fcfa9a9a0530ed44a6dc8e9a2f6
      https://github.com/boxbackup/boxbackup/commit/924907956dff9fcfa9a9a0530ed44a6dc8e9a2f6
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 2573947264c2b1c536eb108fa9cd225e88c5ce0a
      https://github.com/boxbackup/boxbackup/commit/2573947264c2b1c536eb108fa9cd225e88c5ce0a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: d6b23e6d6eedca1e89087b8fbf06665907d18173
      https://github.com/boxbackup/boxbackup/commit/d6b23e6d6eedca1e89087b8fbf06665907d18173
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 8ac3ab1b1e278d7601d97fdfddb71289903875ad
      https://github.com/boxbackup/boxbackup/commit/8ac3ab1b1e278d7601d97fdfddb71289903875ad
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: ada15fb4061b3b88faba537343c1ed4d8578fc5d
      https://github.com/boxbackup/boxbackup/commit/ada15fb4061b3b88faba537343c1ed4d8578fc5d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/backupstore/HousekeepStoreAccount.cpp

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

First part of refactoring HousekeepStoreAccount to use BackupFileSystem.


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

  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: c6471819f751a668162c79d2fd2af5d1305efcc9
      https://github.com/boxbackup/boxbackup/commit/c6471819f751a668162c79d2fd2af5d1305efcc9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 32dece4ff052e343cd2e9a5b74331d062c7066a8
      https://github.com/boxbackup/boxbackup/commit/32dece4ff052e343cd2e9a5b74331d062c7066a8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 754c6c756cbf799746d608be305516a0d184d678
      https://github.com/boxbackup/boxbackup/commit/754c6c756cbf799746d608be305516a0d184d678
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 6d61b9b67082050b9146a0fd12a25c9ed65b194d
      https://github.com/boxbackup/boxbackup/commit/6d61b9b67082050b9146a0fd12a25c9ed65b194d
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 83036e9e8579002f16de86cfbadde6b2308883e4
      https://github.com/boxbackup/boxbackup/commit/83036e9e8579002f16de86cfbadde6b2308883e4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 44d8fce6a1d00f949b8127688fa478076ab12488
      https://github.com/boxbackup/boxbackup/commit/44d8fce6a1d00f949b8127688fa478076ab12488
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: ef25b53546d3b33a2bc0dc915d84854f896dfeec
      https://github.com/boxbackup/boxbackup/commit/ef25b53546d3b33a2bc0dc915d84854f896dfeec
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 024d312aaf734d24d4a80067e50c019ea6fb9461
      https://github.com/boxbackup/boxbackup/commit/024d312aaf734d24d4a80067e50c019ea6fb9461
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: e9682cbd5f95243c382c3800c1e106a47050b7a4
      https://github.com/boxbackup/boxbackup/commit/e9682cbd5f95243c382c3800c1e106a47050b7a4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 5258d2b85041dc5713b9190c0c3c36e323e260be
      https://github.com/boxbackup/boxbackup/commit/5258d2b85041dc5713b9190c0c3c36e323e260be
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 5c1a66536327c7b816ea23481e45bec113c15fa5
      https://github.com/boxbackup/boxbackup/commit/5c1a66536327c7b816ea23481e45bec113c15fa5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 0de8946419492e5ecac514ad07534fbeb1ae0ce5
      https://github.com/boxbackup/boxbackup/commit/0de8946419492e5ecac514ad07534fbeb1ae0ce5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 1d8269f66e8899137023777309cbcce29a8ed5e6
      https://github.com/boxbackup/boxbackup/commit/1d8269f66e8899137023777309cbcce29a8ed5e6
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: d84e189c3ac87ac722cc62716a10617a7fdff969
      https://github.com/boxbackup/boxbackup/commit/d84e189c3ac87ac722cc62716a10617a7fdff969
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupStoreCheck2.cpp

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


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

  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: dcdee22c75c4af075359e9bed6e9e543b47a6cce
      https://github.com/boxbackup/boxbackup/commit/dcdee22c75c4af075359e9bed6e9e543b47a6cce
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupFileSystem.cpp

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


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

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

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


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

  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: 33ce005a7c779736c0cb2b936714701d3b2384bd
      https://github.com/boxbackup/boxbackup/commit/33ce005a7c779736c0cb2b936714701d3b2384bd
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 7161374253cedcad94cef783c7780891f32843bd
      https://github.com/boxbackup/boxbackup/commit/7161374253cedcad94cef783c7780891f32843bd
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 3a72f648645922a9072778e7f8edf8fcd9a04b2e
      https://github.com/boxbackup/boxbackup/commit/3a72f648645922a9072778e7f8edf8fcd9a04b2e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 1ce7b43af27771dc7e0322150b3791c84ef540a5
      https://github.com/boxbackup/boxbackup/commit/1ce7b43af27771dc7e0322150b3791c84ef540a5
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 6b1e778405442e4a58f629bd5bfc2e564b34a616
      https://github.com/boxbackup/boxbackup/commit/6b1e778405442e4a58f629bd5bfc2e564b34a616
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: a9d74047b884a21f7bcb9ca5f8eeda120e58108b
      https://github.com/boxbackup/boxbackup/commit/a9d74047b884a21f7bcb9ca5f8eeda120e58108b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 0ed71acd250d09204a2f7f16109815c221347c63
      https://github.com/boxbackup/boxbackup/commit/0ed71acd250d09204a2f7f16109815c221347c63
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

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


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

  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: fb9e846c3a1e61de4e7c6ac46f433ec09a2d13eb
      https://github.com/boxbackup/boxbackup/commit/fb9e846c3a1e61de4e7c6ac46f433ec09a2d13eb
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M infrastructure/makebuildenv.pl.in

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


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

  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: c99e1b203fbab59ad179b30727f7e46f72f1e420
      https://github.com/boxbackup/boxbackup/commit/c99e1b203fbab59ad179b30727f7e46f72f1e420
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  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: 8a40a1f78dd141ed955fe901bae87c67bfb1bc98
      https://github.com/boxbackup/boxbackup/commit/8a40a1f78dd141ed955fe901bae87c67bfb1bc98
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: a687d9ceed323fac0adb06d5e524e29f0c0d033f
      https://github.com/boxbackup/boxbackup/commit/a687d9ceed323fac0adb06d5e524e29f0c0d033f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 5ffd6fdf0847f435a69b23702673aa19888a0b6a
      https://github.com/boxbackup/boxbackup/commit/5ffd6fdf0847f435a69b23702673aa19888a0b6a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 3b777f743762dc4a30f9b06c446d8a34cbb44a46
      https://github.com/boxbackup/boxbackup/commit/3b777f743762dc4a30f9b06c446d8a34cbb44a46
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 63cff123e01cd178dd7999743baaaca633037c43
      https://github.com/boxbackup/boxbackup/commit/63cff123e01cd178dd7999743baaaca633037c43
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 475c789cb699cd81fadf807e7ecd28ded81bbd7f
      https://github.com/boxbackup/boxbackup/commit/475c789cb699cd81fadf807e7ecd28ded81bbd7f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: effcc7e698b0df9e17699b6684c0c33682820eb4
      https://github.com/boxbackup/boxbackup/commit/effcc7e698b0df9e17699b6684c0c33682820eb4
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 8a3982e267c1b49fe1b3d76cd121f65d61209bf3
      https://github.com/boxbackup/boxbackup/commit/8a3982e267c1b49fe1b3d76cd121f65d61209bf3
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: c3f0df0867b8a7d1189fc778e02c1d7ac731dae0
      https://github.com/boxbackup/boxbackup/commit/c3f0df0867b8a7d1189fc778e02c1d7ac731dae0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

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

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

(cherry picked from commit 3a8ca0c97e7346912889df72a1a87b80b430fe7a)


  Commit: 35521cfb6d8e420e99a86e4994b5df176c123153
      https://github.com/boxbackup/boxbackup/commit/35521cfb6d8e420e99a86e4994b5df176c123153
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 2406323160a762d2152b4de6bf36d7514b20c389
      https://github.com/boxbackup/boxbackup/commit/2406323160a762d2152b4de6bf36d7514b20c389
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 6076f177ce6f5ed97e206a072fb6365833e7816a
      https://github.com/boxbackup/boxbackup/commit/6076f177ce6f5ed97e206a072fb6365833e7816a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/backupstore/BackupAccountControl.cpp

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


  Commit: 121663ece9de0e9a44c0660813df66a788297f30
      https://github.com/boxbackup/boxbackup/commit/121663ece9de0e9a44c0660813df66a788297f30
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 547dd73356bdbaa890d0f2a28f23455220efec83
      https://github.com/boxbackup/boxbackup/commit/547dd73356bdbaa890d0f2a28f23455220efec83
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 130ea83bb40ba3aa1935a9993cfb7859a1947ae9
      https://github.com/boxbackup/boxbackup/commit/130ea83bb40ba3aa1935a9993cfb7859a1947ae9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 3473b86122de0657c3f05d4dfd032aaa162f0b58
      https://github.com/boxbackup/boxbackup/commit/3473b86122de0657c3f05d4dfd032aaa162f0b58
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 643f4ae1218bfbc3401a0a1c0c5ad44cb0af2847
      https://github.com/boxbackup/boxbackup/commit/643f4ae1218bfbc3401a0a1c0c5ad44cb0af2847
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: c0c12863e9203183d3c68bfea2cc08009fbaef93
      https://github.com/boxbackup/boxbackup/commit/c0c12863e9203183d3c68bfea2cc08009fbaef93
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: d319a6e8db3e9561cdbc82ecfd323b9223b9e305
      https://github.com/boxbackup/boxbackup/commit/d319a6e8db3e9561cdbc82ecfd323b9223b9e305
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: ac7170689331567830da5155df6dee647b31de5b
      https://github.com/boxbackup/boxbackup/commit/ac7170689331567830da5155df6dee647b31de5b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 60257e261f98a73dd847d4013a383378aa544a1c
      https://github.com/boxbackup/boxbackup/commit/60257e261f98a73dd847d4013a383378aa544a1c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: aabd78c5dc4776a23bc6f656ff1f7c79324ed0a6
      https://github.com/boxbackup/boxbackup/commit/aabd78c5dc4776a23bc6f656ff1f7c79324ed0a6
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: ad86838cb0bbaa7d539704c9b69c787ca6f70fde
      https://github.com/boxbackup/boxbackup/commit/ad86838cb0bbaa7d539704c9b69c787ca6f70fde
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4

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


  Commit: 61995c3b23789b93635329d3568760d7302e2773
      https://github.com/boxbackup/boxbackup/commit/61995c3b23789b93635329d3568760d7302e2773
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 5b9ed7106369580736750a2d39e9d06e5cae3c65
      https://github.com/boxbackup/boxbackup/commit/5b9ed7106369580736750a2d39e9d06e5cae3c65
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: d5a4c6d0063c15bab1cf009b817512a734d77fee
      https://github.com/boxbackup/boxbackup/commit/d5a4c6d0063c15bab1cf009b817512a734d77fee
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: d7fa177dfedfbf2ef3016c4265094c8186f9a51c
      https://github.com/boxbackup/boxbackup/commit/d7fa177dfedfbf2ef3016c4265094c8186f9a51c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M bin/bbstoreaccounts/bbstoreaccounts.cpp

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


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

  Changed paths:
    M lib/backupstore/BackupCommands.cpp

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


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

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

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


  Commit: 65d0eabd43598e34b3c9f4ec7a88909f891cd6b8
      https://github.com/boxbackup/boxbackup/commit/65d0eabd43598e34b3c9f4ec7a88909f891cd6b8
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 48e1ae99b6ee5166bab705cc0423169936f1856b
      https://github.com/boxbackup/boxbackup/commit/48e1ae99b6ee5166bab705cc0423169936f1856b
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 5a549347df12edc07815e5250b0b1102b7ae5bfa
      https://github.com/boxbackup/boxbackup/commit/5a549347df12edc07815e5250b0b1102b7ae5bfa
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: ef40223f946a81ef64bceaeb14ed1db27bfea03f
      https://github.com/boxbackup/boxbackup/commit/ef40223f946a81ef64bceaeb14ed1db27bfea03f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 7cf8a0c57f2d75e6a4427b8b47a87ebca8fc4d76
      https://github.com/boxbackup/boxbackup/commit/7cf8a0c57f2d75e6a4427b8b47a87ebca8fc4d76
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 26bfe3f1916a46a0d5ae61a2ac7754e7ccf03d1a
      https://github.com/boxbackup/boxbackup/commit/26bfe3f1916a46a0d5ae61a2ac7754e7ccf03d1a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 3febe9dddbaa7157a385a1a3d209f692c7ea8486
      https://github.com/boxbackup/boxbackup/commit/3febe9dddbaa7157a385a1a3d209f692c7ea8486
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: d98c6579918b0783a3dddf2cefa9101165b0d655
      https://github.com/boxbackup/boxbackup/commit/d98c6579918b0783a3dddf2cefa9101165b0d655
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 1a96f9545ee117bc3b02969a3791efcab73ce38a
      https://github.com/boxbackup/boxbackup/commit/1a96f9545ee117bc3b02969a3791efcab73ce38a
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: fb2af31aee93edcf24b086915559df0d363cebe9
      https://github.com/boxbackup/boxbackup/commit/fb2af31aee93edcf24b086915559df0d363cebe9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

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


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

  Changed paths:
    M test/backupstore/testbackupstore.cpp

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

Don't swallow exceptions by returning before rethrowing them


  Commit: 637849a1f755c57ac6925d3d3dce61706eb06dea
      https://github.com/boxbackup/boxbackup/commit/637849a1f755c57ac6925d3d3dce61706eb06dea
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 36f05868e3203e0fb788827cfb5b87bcff44dd3c
      https://github.com/boxbackup/boxbackup/commit/36f05868e3203e0fb788827cfb5b87bcff44dd3c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 3785800e4a38cafc62feef719aea60d240b7ac77
      https://github.com/boxbackup/boxbackup/commit/3785800e4a38cafc62feef719aea60d240b7ac77
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 53c37315b77b3010a2a4210dd61b221d842f495c
      https://github.com/boxbackup/boxbackup/commit/53c37315b77b3010a2a4210dd61b221d842f495c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M lib/bbackupd/BackupClientInodeToIDMap.cpp

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


  Commit: 3d52e3679f9c9096f9f8342e3da1d6f6f9d042c0
      https://github.com/boxbackup/boxbackup/commit/3d52e3679f9c9096f9f8342e3da1d6f6f9d042c0
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 524e110abb7baf8a3d4860b93342733cdc4e23c6
      https://github.com/boxbackup/boxbackup/commit/524e110abb7baf8a3d4860b93342733cdc4e23c6
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 40323aa1891e814b9792e120e45479387c9baa72
      https://github.com/boxbackup/boxbackup/commit/40323aa1891e814b9792e120e45479387c9baa72
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 5cfd43b647efa149306ba04998d011a19e9f6a57
      https://github.com/boxbackup/boxbackup/commit/5cfd43b647efa149306ba04998d011a19e9f6a57
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/common/testcommon.cpp

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


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

  Changed paths:
    M test/common/testcommon.cpp

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


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

  Changed paths:
    M appveyor.yml

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


  Commit: b9678dd1ec30419299f51f6ab7da8b6adb98b15f
      https://github.com/boxbackup/boxbackup/commit/b9678dd1ec30419299f51f6ab7da8b6adb98b15f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 4fdd7764dac64c7cdf2eb6d884b8a510f99d4ba2
      https://github.com/boxbackup/boxbackup/commit/4fdd7764dac64c7cdf2eb6d884b8a510f99d4ba2
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

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

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


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

  Changed paths:
    M lib/backupstore/BackupStoreContext.cpp

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


  Commit: b800c8441b23b0c0a70787620535a2210e5c8606
      https://github.com/boxbackup/boxbackup/commit/b800c8441b23b0c0a70787620535a2210e5c8606
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: f88f0e095a888ef99e3c28db1a87dcb4e4d41624
      https://github.com/boxbackup/boxbackup/commit/f88f0e095a888ef99e3c28db1a87dcb4e4d41624
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 6d1953eea164b70f3919c98d4b59978910ca667f
      https://github.com/boxbackup/boxbackup/commit/6d1953eea164b70f3919c98d4b59978910ca667f
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 6f3920ce8216baade4968a474fbfa74afb8eae0e
      https://github.com/boxbackup/boxbackup/commit/6f3920ce8216baade4968a474fbfa74afb8eae0e
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M test/backupstore/testbackupstore.cpp

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


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

  Changed paths:
    M test/backupstore/testbackupstore.cpp

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


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

  Changed paths:
    M test/backupstorefix/testbackupstorefix.cpp

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


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

  Changed paths:
    M test/backupstorepatch/testbackupstorepatch.cpp

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


  Commit: 46e96d291b6bba449e08fa7e185cb3b002694291
      https://github.com/boxbackup/boxbackup/commit/46e96d291b6bba449e08fa7e185cb3b002694291
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: ef12d719df54e74418b25170a564c2f1facf17b1
      https://github.com/boxbackup/boxbackup/commit/ef12d719df54e74418b25170a564c2f1facf17b1
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: ab72aa60d9140c9456ad906a76f2c4994afd9547
      https://github.com/boxbackup/boxbackup/commit/ab72aa60d9140c9456ad906a76f2c4994afd9547
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 3fa9848210e69bf677af01f84a0b9a4421d29fcf
      https://github.com/boxbackup/boxbackup/commit/3fa9848210e69bf677af01f84a0b9a4421d29fcf
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 5db2393800177bfccd1aec9ecd8390143386b390
      https://github.com/boxbackup/boxbackup/commit/5db2393800177bfccd1aec9ecd8390143386b390
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 32352cea2ca92fe4207bf6fe68e10a38e42c1fa9
      https://github.com/boxbackup/boxbackup/commit/32352cea2ca92fe4207bf6fe68e10a38e42c1fa9
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 405ec5ed18e8eaad48a866cebe68f3898e42db9c
      https://github.com/boxbackup/boxbackup/commit/405ec5ed18e8eaad48a866cebe68f3898e42db9c
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 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: 0cd3f61d3e990e1cae641e9b3d887d23ef4385bb
      https://github.com/boxbackup/boxbackup/commit/0cd3f61d3e990e1cae641e9b3d887d23ef4385bb
  Author: Chris Wilson <chris+github at qwirx.com>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M infrastructure/m4/boxbackup_tests.m4

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


  Commit: ad635c6b98b6578e2aa336af92fd68164bdb6f9d
      https://github.com/boxbackup/boxbackup/commit/ad635c6b98b6578e2aa336af92fd68164bdb6f9d
  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


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

  Changed paths:
    M lib/backupstore/BackupStoreContext.cpp

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


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

  Changed paths:
    M lib/backupstore/HousekeepStoreAccount.cpp
    M lib/bbstored/BBStoreDHousekeeping.cpp

  Log Message:
  -----------
  Add some comments


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

  Changed paths:
    M lib/common/Configuration.cpp

  Log Message:
  -----------
  Improve exception messages when configuration keys are missing or invalid.

Include a message in the exception, and reuse code to make them consistent.

Whitespace cleanup.

(cherry picked from commit 8589bd9a2d977a86be2917a382c2559858e63bff)


Compare: https://github.com/boxbackup/boxbackup/compare/feeee65ac3cb...d5b8f38a71ff


More information about the Boxbackup-commit mailing list