summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2016-08-27fuse: implement versions viewThomas Waldmann
all archives, all items are read to build a unified view. files are represented by a same-name directory with the versions of the file. A filename suffix computed by adler32(chunkids) is used to disambiguate the versions. also: refactor code a little, create methods for leaves, inner nodes.
2016-08-27Merge pull request #1374 from textshell/issue/1039-aes-ivenkore
Fix AES-CTR nonce reusage
2016-08-27Reserve nonce space for AES-CTR before using it.Martin Hostettler
Reusing the nonce totally breaks AES-CTR confidentiality. This code uses a reservation of nonce space and stores the next nonce available for a future reservation on the client and in the repository. Local storage is needed to protect against evil repositories that try to gain access to encrypted data by not saving nonce reservations and aborting the connection or otherwise forcing a rollback. Storage in the repository is needed to protect against another client writing to the repository after a transaction was aborted and thus not seeing the last used nonce from the manifest. With a real counter mode cipher protection for the multiple client case with an actively evil repository is not possible. But this still protects against cases where the attacker can not arbitrarily change the repository but can read everything stored and abort connections or crash the server. Fixes #22
2016-08-27recreate: fix crash if recompress and deduplication beyond autocommit_thresholdMarian Beermann
ie. it means that if all the recompressed chunks were already in the repo no data would be written, so there would be no active txn, so failure ensues.
2016-08-27Merge pull request #1539 from enkore/f/recreate-cpenkore
recreate: fix crash if archive doesn't have chunker_params
2016-08-27recreate: fix crash if archive doesn't have chunker_paramsMarian Beermann
2016-08-27Merge pull request #1536 from enkore/f/prip2enkore
ProgressIndicatorPercent / extract minor cosmetic enhancement
2016-08-27Merge pull request #1535 from ThomasWaldmann/merge-1.0-maintTW
Merge 1.0 maint
2016-08-26extract: --progress: no extra line for 'Calculating size'Marian Beermann
2016-08-26ProgressIndicatorPercent: output(message) to override outputMarian Beermann
2016-08-26repo tests: convert some more byte literals to H(x)Thomas Waldmann
2016-08-26Merge branch '1.0-maint'Thomas Waldmann
2016-08-25fix overeager storing of hardlink mastersMarian Beermann
n.b. we only need to store them for items that we wouldn't extract. this also fixes an intersting edge case in extracting hard links with --strip-components
2016-08-25extract: fix incorrect progress output for hard linksMarian Beermann
this produces correct output if any (non proper) subset of hardlinks are extracted.
2016-08-22tests: TestBuildFilter: Adjust from item_is_hardlink_master to ↵Martin Hostettler
peek_and_store_hardlink_masters.
2016-08-22Archiver.build_filter: strip_components is no longer a optional parameter.Martin Hostettler
2016-08-22extract: When doing a partial restore don't leak prefetched chunks.Martin Hostettler
The filter function passed to iter_items (with preload=True) may never return True for items that are not really extracted later because that would leak prefetched items. For restoring hard linked files the item containing the actual chunks might not be matched or implicitly removed from the restore by strip_components. For this reason the chunk list or all items that can potentially be used as hardlink target needs to be stored. To achive both requirements at the same time the filter function needs to store the needed information for the hardlinks while not returning True just because it could be a hardlink target. Known problems: When using progress indication the calculated extracted_size now can be smaller than the actual extracted size in presence of hard links (master is not restored) instead of bigger (potential master not used in restore).
2016-08-22re-enable fuse tests for RemoteArchiverThomas Waldmann
at some time they had deadlock issues, but it worked for me now.
2016-08-21Repository: add compact_segments progressMarian Beermann
2016-08-21Merge pull request #1449 from enkore/f/extractprogressTW
extract --progress
2016-08-21ProgressIndicatorPercent: remove same_lineMarian Beermann
2016-08-21extract: --progress: Calculating sizeMarian Beermann
2016-08-21Merge pull request #1513 from ThomasWaldmann/improve-error-loggingTW
improve error logging, fixes #1440
2016-08-21Simplify and test Item.file_sizeMarian Beermann
2016-08-21Flip ProgressIndicatorPercent same_line default to TrueMarian Beermann
Every production use of this uses same_line=True
2016-08-21borg-extract --progressMarian Beermann
2016-08-21Merge pull request #1507 from ThomasWaldmann/use-modified-pyinstallerenkore
use patched LDLP-preserving pyinstaller
2016-08-21Merge pull request #1508 from ThomasWaldmann/merge-1.0-maintenkore
Merge 1.0 maint
2016-08-20fixup: meant "tb", not "traceback"Thomas Waldmann
2016-08-20Merge pull request #1511 from c4rlo/lru-cacheTW
helpers.py: replace memoize with functools.lru_cache
2016-08-20improve error logging, fixes #1440Thomas Waldmann
archiver: split traceback and msg, have separate log level for traceback, log LockTimeout at debug level, for "Error" exceptions: always log the traceback, either at ERROR or DEBUG level. remote: if we have an "Error" typed exception instance, we can use its traceback flag and .get_message() as we do locally.
2016-08-20helpers.py: replace memoize usages with lru_cacheCarlo Teubner
2016-08-20restore original LDLP, if possible, fixes #1498Thomas Waldmann
see https://github.com/pyinstaller/pyinstaller/pull/2148
2016-08-20helpers.py: replace memoize with functools.lru_cacheCarlo Teubner
2016-08-20daemonize(): use os.devnull instead of hardcoded /dev/nullCarlo Teubner
2016-08-20Merge branch '1.0-maint'Thomas Waldmann
2016-08-19borg list: test for --list-format deprecationThomas Waldmann
2016-08-19Merge pull request #1484 from enkore/issue/1396TW
Track shadowing of log entries
2016-08-17Exclude incompatible tests for ArchiverTestCaseBinaryMarian Beermann
2016-08-17Repository: don't use defaultdict for shadow indexMarian Beermann
avoids errors by accidentally inserting an empty list and makes it more clear.
2016-08-17Track entire sessionMarian Beermann
Note how this enables the much stricter check in test_moved_deletes_are_tracked
2016-08-17Track shadowing of log entriesMarian Beermann
Fixes (benign) index vs. log inconsistencies when segments are skipped during compaction.
2016-08-17compact_segments: add segment-level loggingMarian Beermann
2016-08-16Merge pull request #1489 from enkore/issue/1486TW
Fix borg-list --list-format
2016-08-16Fix borg-list empty formatMarian Beermann
Should produce empty output, not default output.
2016-08-16Fix borg-list --list-formatMarian Beermann
2016-08-16fix timestamp key nameThomas Waldmann
2016-08-15src cleanup: do not use XXX in strings if just any other string works alsoThomas Waldmann
XXX is usually used in comments to mark questionable places in the source.
2016-08-15src cleanup: get rid of text-as-bytes in borg.remoteThomas Waldmann
2016-08-15more safe interface for manifest.archivesThomas Waldmann