Jakob Unterwurzacher
8b1df08b8a
syscallcompat: add Renameat2 for Darwin
2020-09-09 11:16:29 +02:00
Jakob Unterwurzacher
7c0363dee5
test_helpers: mark MountOrFatal as a Helper()
2020-09-09 11:15:54 +02:00
Jakob Unterwurzacher
570e9baadf
manpage: link to exitcodes.go
2020-09-06 11:38:13 +02:00
Jakob Unterwurzacher
993b19c19c
gocryptfs -init: fix wrong exit code on non-empty dir
...
Fixes https://github.com/rfjakob/gocryptfs/pull/503
2020-09-06 11:35:25 +02:00
Jakob Unterwurzacher
598e5f385e
v2api/reverse: update TODO comment on xattrs
2020-08-30 16:39:46 +02:00
Jakob Unterwurzacher
3806a8cc93
tests/reverse: implement (skipped) xattr test
...
v1api reverse mode did not have xattr support,
the v2api version may have at some point. Prep the
test already.
2020-08-30 16:36:10 +02:00
Jakob Unterwurzacher
d212b246c5
v2api/reverse: implement Lseek
2020-08-16 19:58:47 +02:00
Jakob Unterwurzacher
58a2726977
v2api/reverse: implement Statfs
2020-08-16 19:41:00 +02:00
Jakob Unterwurzacher
6f3cca2cdd
v2api: clean up api TODOs
2020-08-16 13:52:27 +02:00
Jakob Unterwurzacher
ee5ab1cc29
v2api: rename "File2" to just "File"
...
Rename the symbols and the files.
2020-08-16 12:50:33 +02:00
Jakob Unterwurzacher
94e8fc12ea
v2api/reverse: finish -exclude
...
Tests pass now.
2020-08-15 17:31:45 +02:00
Jakob Unterwurzacher
15b0b4a5fd
v2api/reverse: start wiring up -exclude functionality
...
Exclude in readdir is missing.
2020-08-15 16:08:16 +02:00
Jakob Unterwurzacher
f270135c16
test_helper: VerifyExistence: don't panic
...
Instead bubble up the error to the testing object.
2020-08-15 15:39:08 +02:00
Jakob Unterwurzacher
1ea1b179c2
v2api/reverse: fix two fd leaks
2020-08-15 15:28:40 +02:00
Jakob Unterwurzacher
35055030a1
v2api/reverse: implement ctlsocksrv.Interface
2020-08-15 15:08:28 +02:00
Jakob Unterwurzacher
b6580a87e5
v2api/reverse: implement gocryptfs.conf mapping with -plaintextnames
2020-08-15 15:05:25 +02:00
Jakob Unterwurzacher
6d4f1a6888
v2api/reverse: implement Read
2020-08-09 22:11:46 +02:00
Jakob Unterwurzacher
5276092663
v2api/reverse: implement Readlink
2020-08-08 18:45:47 +02:00
Jakob Unterwurzacher
84ed139cd2
v2api/reverse: implement Lookup for longname
2020-08-02 19:33:12 +02:00
Jakob Unterwurzacher
4674bac838
v2api/reverse: implement Lookup for gocryptfs.conf & gocryptfs.diriv
2020-08-02 13:25:53 +02:00
Jakob Unterwurzacher
47d8f56b7f
v2api/reverse: add missing decryptPath call openBackingDir
2020-08-01 23:06:35 +02:00
Jakob Unterwurzacher
6c26cda531
v2api/reverse: implement Readdir
2020-08-01 22:28:25 +02:00
Jakob Unterwurzacher
f54d21c384
v2api/reverse: implement Lookup & Getattr
2020-08-01 21:14:33 +02:00
Jakob Unterwurzacher
18b3bdb158
v2api/reverse: start fusefrontend_reverse v2 API implementation
2020-08-01 21:14:17 +02:00
Jakob Unterwurzacher
13dc7657ba
v2api/reverse: move old fusefrontend_reverse out of the way
...
fusefrontend_reverse -> fusefrontend_reverse_v1api
2020-08-01 21:14:10 +02:00
Jakob Unterwurzacher
dd3d8c100b
fusefrontend_reverse: collapse getFileType
2020-08-01 20:28:06 +02:00
Jakob Unterwurzacher
1867fdaef4
v2api: move helpers from node.go to node_helpers.go
2020-08-01 19:26:42 +02:00
Jakob Unterwurzacher
8afbbc86d1
getdents_c: continue on EINTR from open
...
Getting EINTR here is acceptable.
2020-07-29 20:35:59 +02:00
Jakob Unterwurzacher
5073459296
Revert "getdents_c: read from two threads"
...
This made the code more complicated without reproducing
the problem.
This reverts commit 77632b7554
.
2020-07-29 20:29:24 +02:00
Jakob Unterwurzacher
13f1980dc4
v2api: pass fusedebug option via MountOptions
...
srv.SetDebug() is deprecated and only enables the debug
output after the init sequence, so we missed the first
few transaction in the debug output.
2020-07-27 23:31:57 +02:00
Jakob Unterwurzacher
9e0b07ec99
stress_tests: run pingpong.bash at nice level 19
...
Like extractloop.bash.
2020-07-26 20:01:30 +02:00
Jakob Unterwurzacher
4572cd2103
v2api: fix missing size translation in Lookup
2020-07-26 19:49:26 +02:00
Jakob Unterwurzacher
777b95f82f
v2api: delete (most) fusefrontend v1 files
...
All the functionality in these files has been reimplemented
for the v2 api. Drop the old files.
2020-07-26 18:35:12 +02:00
Jakob Unterwurzacher
81fb42b912
go.mod: update to go-fuse master
...
We need the read-only fix from go-fuse master.
2020-07-23 23:04:46 +02:00
Jakob Unterwurzacher
9cd24d79a2
v2api: implement Lseek
...
This also fixes the last remaining tests/fsck failure.
2020-07-23 22:55:07 +02:00
Jakob Unterwurzacher
8915785acf
v2api: fsck: use a temporary mount
...
Directly accessing the Nodes does not work properly,
as there is no way to attach a newly LOOKUPped Node
to the tree. This means Path() does not work.
Use an actual mount instead and walk the tree.
2020-07-19 23:03:47 +02:00
Jakob Unterwurzacher
49fc3abcb4
v2api: Lookup: use newChild() helper
2020-07-19 13:15:18 +02:00
Jakob Unterwurzacher
015a884090
v2api: enable go-fuse warnings on mount & fsck
2020-07-19 12:48:29 +02:00
Jakob Unterwurzacher
751f237993
v2api: make fsck compile again
...
Horribly broken, but it compiles.
.../tests/fsck$ ./run_fsck.bash
Reading password from extpass program "echo", arguments: ["test"]
Decrypting master key
OpenDir ".": invalid entry "invalid_file_name.3": illegal base64 data at input byte 17
OpenDir ".": invalid entry "invalid_file_name_2": bad message
fsck: corrupt entry in dir "": "invalid_file_name.3"
fsck: corrupt entry in dir "": "invalid_file_name_2"
OpenDir ".": invalid entry "invalid_file_name____1": bad message
fsck: corrupt entry in dir "": "invalid_file_name____1"
fsck: error stating file ".go-fuse.5577006791947779410/deleted": no such file or directory
fsck: error listing xattrs on ".go-fuse.13260572831089785859/deleted": no such file or directory
fsck: error opening dir "i10488239 (dir): ": no such file or directory
fsck: error reading symlink ".go-fuse.10667007354186551956/deleted": no such file or directory
fsck: error listing xattrs on ".go-fuse.11998794077335055257/deleted": no such file or directory
[...]
2020-07-18 23:42:25 +02:00
Jakob Unterwurzacher
6b7ff09373
v2api: Node: make Path() public
...
Helpful for fsck.
2020-07-18 23:40:54 +02:00
Jakob Unterwurzacher
7eae35e2d3
v2api: implement ctlsocksrv.Interface
2020-07-17 22:14:40 +02:00
Jakob Unterwurzacher
57d572dbc1
v2api: implement Getxattr, Setxattr, Removexattr, Listxattr
...
gocryptfs/tests/xattr passes.
2020-07-14 19:55:20 +02:00
Jakob Unterwurzacher
4a0966e79e
v2api: Setattr: fill out
structure
2020-07-12 21:17:52 +02:00
Jakob Unterwurzacher
d7db071528
tests: TestMagicNames: add warmup rounds
...
Chasing a bug that seems to have nothing to do
with magic names, as it already triggers during
warmup:
--- FAIL: TestMagicNames (0.00s)
matrix_test.go:773: Testing n="warmup1"
matrix_test.go:773: Testing n="warmup2"
matrix_test.go:820: no such file or directory
2020-07-12 21:00:52 +02:00
Jakob Unterwurzacher
9e69334400
v2api: set NullPermissions = true
...
Don't let go-fuse mess úp 0000 permissions.
2020-07-12 20:39:19 +02:00
Jakob Unterwurzacher
ca5acae6f0
v2api: fix Mkfifo
2020-07-12 20:19:29 +02:00
Jakob Unterwurzacher
0fa824933c
v2api: properly implement Node.Setattr
...
We used to always open a *File2 and letting the *File2
handle Setattr. This does not work it we cannot open the file!
Before:
$ go test
2020/07/12 20:14:57 writer: Write/Writev failed, err: 2=no such file or directory. opcode: INTERRUPT
2020/07/12 20:14:57 writer: Write/Writev failed, err: 2=no such file or directory. opcode: INTERRUPT
--- FAIL: TestLchown (0.00s)
matrix_test.go:634: lchown /tmp/gocryptfs-test-parent-1026/014500839/default-plain/symlink: too many levels of symbolic links
touch: setting times of '/tmp/gocryptfs-test-parent-1026/014500839/default-plain/utimesnano_symlink': Too many levels of symbolic links
--- FAIL: TestUtimesNanoSymlink (0.00s)
matrix_test.go:655: exit status 1
--- FAIL: TestMkfifo (0.00s)
matrix_test.go:755: file exists
--- FAIL: TestMagicNames (0.00s)
matrix_test.go:773: Testing n="gocryptfs.longname.QhUr5d9FHerwEs--muUs6_80cy6JRp89c1otLwp92Cs"
matrix_test.go:773: Testing n="gocryptfs.diriv"
matrix_test.go:815: open /tmp/gocryptfs-test-parent-1026/014500839/default-plain/linktarget: permission denied
--- FAIL: TestChmod (0.00s)
matrix_test.go:840: chmod 444 -> 000 failed: permission denied
matrix_test.go:840: chmod 444 -> 111 failed: permission denied
matrix_test.go:840: chmod 444 -> 123 failed: permission denied
matrix_test.go:840: chmod 444 -> 321 failed: permission denied
FAIL
exit status 1
FAIL github.com/rfjakob/gocryptfs/tests/matrix 0.790s
After:
$ go test
--- FAIL: TestMkfifo (0.00s)
matrix_test.go:755: file exists
--- FAIL: TestMagicNames (0.00s)
matrix_test.go:773: Testing n="gocryptfs.longname.QhUr5d9FHerwEs--muUs6_80cy6JRp89c1otLwp92Cs"
matrix_test.go:773: Testing n="gocryptfs.diriv"
matrix_test.go:815: open /tmp/gocryptfs-test-parent-1026/501766059/default-plain/linktarget: permission denied
--- FAIL: TestChmod (0.00s)
matrix_test.go:849: modeHave 0644 != modeWant 0
FAIL
exit status 1
FAIL github.com/rfjakob/gocryptfs/tests/matrix 0.787s
2020-07-12 20:17:15 +02:00
Jakob Unterwurzacher
f11432d02a
v2api: Getattr: use file handle if passed
2020-07-12 15:08:17 +02:00
Jakob Unterwurzacher
4d99b02279
v2api: Getattr: fix file size
2020-07-12 15:03:42 +02:00
Jakob Unterwurzacher
0d385846da
v2api: call InitSerializer
...
If we don't, reads hang with -serialize_reads.
2020-07-12 15:02:53 +02:00