76 Commits

Author SHA1 Message Date
Sebastian Messmer
b6ce7c3ae4 Allow disabling integrity checks on command line 2017-09-16 16:18:53 +01:00
Sebastian Messmer
f6b6875bb2 Rename VersionCountingBlockStore -> IntegrityBlockStore 2017-09-16 00:18:58 +01:00
Sebastian Messmer
3aa8b74fd9 Fix fsstat on osx 2017-08-31 23:40:25 +01:00
Sebastian Messmer
fc21b0882a Fix relatime performance 2017-08-24 08:19:16 +01:00
Sebastian Messmer
5fb4098c8b Implement relatime behavior for performance 2017-08-23 20:32:36 +01:00
Sebastian Messmer
679b14a4d8 * Allow mounting using system mount tool and /etc/fstab (e.g. mount -t fuse.cryfs basedir mountdir)
* Pass fuse options directly to cryfs (i.e. 'cryfs basedir mountdir -o allow_other' instead of 'cryfs basedir mountdir -- -o allow_other')
2017-08-23 09:56:03 +01:00
Sebastian Messmer
ffc0b5195c - Fix CachingBlockStore2_Specific test cases to actually test CachingBlockStore2
- Remove old CachingBlockStore
2017-08-22 00:03:04 +01:00
Sebastian Messmer
9d298bad6c Switch to new caching block store 2017-08-21 23:11:45 +01:00
Sebastian Messmer
4a602ce7a5 Remove old blockstore implementations 2017-07-20 19:32:42 -07:00
Sebastian Messmer
acf01ec4ff Actually wire up CryDevice to use new block stores 2017-07-18 14:49:51 -07:00
Sebastian Messmer
317088e449 Rename unique_ref::isValid to is_valid to comply with naming scheme of other functions 2017-04-10 14:16:30 -07:00
Sebastian Messmer
9ada10db4d Improve unique_ref 2017-04-03 14:43:32 +01:00
Sebastian Messmer
d84e65ad76 Merge from develop 2017-02-18 13:22:43 +00:00
Sebastian Messmer
19bfe97d52 du reports correct space usage 2017-02-18 13:21:54 +00:00
Sebastian Messmer
cab1c71cac Merge from develop 2017-02-04 19:18:00 +00:00
Sebastian Messmer
54e0ffce2e Merge branch 'develop' of github.com:cryfs/cryfs into develop 2017-02-04 19:03:32 +00:00
Sebastian Messmer
9a304fc52b Upgrade spdlog to 0.11.0 2017-02-04 19:03:20 +00:00
Sebastian Messmer
596d9d0426 Merge from develop 2017-02-04 14:38:14 +00:00
Sebastian Messmer
7267bb5be4 Fix buid on Mac OS X 2017-02-04 14:21:00 +00:00
Sebastian Messmer
42765c6be6 Merge from develop 2017-01-21 20:24:09 +00:00
Sebastian Messmer
e37d84a3d6 fspp::Dir, fspp::File and fspp::Symlink don't inherit from fspp::Node anymore. This allows file systems to return a generic fspp::Node instead of a concrete subclass when the operation doesn't need to know what type of node it is. 2017-01-21 19:16:35 +00:00
Sebastian Messmer
457ca52eb3 Add assertions to unique_ref 2016-07-14 16:29:02 +02:00
Sebastian Messmer
9e9369b9ed Performance optimization: When removing or shrinking a tree, we don't load/read leaves anymore. Loading inner nodes is enough to get all block IDs and then we can delete the leaves from their IDs without loading them. 2016-07-13 11:27:31 +02:00
Sebastian Messmer
b7b5dfba2a Fix generation of new file systems 2016-06-27 22:31:06 -07:00
Sebastian Messmer
3425760daf Implement migration for old filesystems that don't have parent pointers. 2016-06-27 20:03:44 -07:00
Sebastian Messmer
397de9372f Each blob stores a parent pointer (i.e. the ID of the directory that contains this blob). This stores the directory structure in a conflict-proof way and can be used to resolve such conflicts. 2016-06-27 18:22:13 -07:00
Sebastian Messmer
be8dffb24d MyClientId is generated outside of CryDevice to give the CryConfigCreator access to it. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
514dbcb6c7 ClientId is not loaded/generated inside of KnownBlockVersions, but in CryDevice. This way, CryDevice also has access to the ClientID. This is later needed to recognize whether we're in a single-client or in a multi-client setting. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
839a511c4d When an integrity violation is detected, any further access to the file system is blocked. This ensures that the user notices the integrity violation. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
c84a230afd VersionCountingBlockStore is initialized with a flag, saying whether missing blocks are integrity errors. This flag is meant to be activated in a single-client scenario to have this additional integrity check. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
86c2144a37 Implement migration from file systems without version numbers 2016-06-26 22:15:52 -07:00
Sebastian Messmer
389273a24f Test cases use a fake home directory for their configuration, so they don't clutter the actual home directory. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
a5391a854d Use VersionCountingBlockStore 2016-06-26 22:15:52 -07:00
Sebastian Messmer
c5ccd9c2d1 Set cache entry to dirty when timestamps are changed. Otherwise, it wouldn't be written back. 2016-06-09 17:32:35 -07:00
Sebastian Messmer
e8ad454e47 TODOs 2016-06-08 12:35:56 -07:00
Sebastian Messmer
e2ec72edde Remove unused function 2016-06-08 12:29:28 -07:00
Sebastian Messmer
5aff394a16 Directory timestamps are updated correctly. Also added test cases for this. 2016-06-08 12:21:57 -07:00
Sebastian Messmer
5a5037c992 Symlinks update atime correctly. Also added a test case for this. 2016-06-07 21:47:23 -07:00
Sebastian Messmer
69f4c7976e File::truncate() updates timestamps correctly. Also added test cases for this. 2016-06-07 21:30:57 -07:00
Sebastian Messmer
6448110975 OpenFile updates timestamps correctly, i.e. on read(), write() and truncate(). Also added test cases for it. 2016-06-07 21:25:02 -07:00
Sebastian Messmer
9bb2e2e89a Implement fsync() and fdatasync() syscalls for flushing open files 2016-06-07 18:36:59 -07:00
Sebastian Messmer
93927e76d6 TODOs 2016-06-02 20:25:14 -07:00
Sebastian Meßmer
3894157589 Merge pull request #61 from mhogomchungu/develop
remove compiler warnings
2016-06-02 20:21:54 -07:00
Sebastian Messmer
1402f54fec Factor out platform inconsistency between Mac and Linux (stat.st_atim vs stat.st_atimespec) 2016-06-02 20:08:51 -07:00
Francis Banyikwa
c5a6f16cd5 use a macro to silence compiler warnings 2016-06-02 09:54:39 +03:00
Francis Banyikwa
de6462e548 remove compiler warnings 2016-06-01 11:34:19 +03:00
Sebastian Messmer
61e56cfeab Fix small rename corner case and add test cases for timestamps in many rename corner cases 2016-05-27 21:19:04 -07:00
Sebastian Messmer
183b9cf74b Fix utimens() behavior: It now updates ctime as well. 2016-05-27 17:26:23 -07:00
Sebastian Messmer
f6545bbcc3 Move fsblobstore::now() to cpputils 2016-05-27 15:46:05 -07:00
Sebastian Messmer
bfba538818 Fix rename corner cases: Overwriting an existing directory with a file or the other way round 2016-04-28 22:49:57 -07:00