<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/fusefrontend_reverse, branch v2.3.1</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v2.3.1</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v2.3.1'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2022-08-28T09:11:36+00:00</updated>
<entry>
<title>make format</title>
<updated>2022-08-28T09:11:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-08-28T09:11:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=003a7fa2e53ac15d2c94a34102ae12b69b23c586'/>
<id>urn:sha1:003a7fa2e53ac15d2c94a34102ae12b69b23c586</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix invalid -longnamemax for reverse mode</title>
<updated>2022-08-28T09:09:01+00:00</updated>
<author>
<name>NekoGirlSAIKOU</name>
</author>
<published>2022-04-24T17:35:30+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=1bff80b46cf3cdd2d6934ebf905fca96dde7af97'/>
<id>urn:sha1:1bff80b46cf3cdd2d6934ebf905fca96dde7af97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix reverse gocryptfs.conf access on macOS</title>
<updated>2022-04-02T13:15:04+00:00</updated>
<author>
<name>Val</name>
</author>
<published>2022-03-31T18:41:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c9e4e4f74150d2734496e90a4c442a17b79f52c1'/>
<id>urn:sha1:c9e4e4f74150d2734496e90a4c442a17b79f52c1</id>
<content type='text'>
Unlike the FUSE implementation on Linux, macFUSE doesn't cache the file
attributes from the `LOOKUP` call, so it calls `GETATTR` prior to
accessing a file.

In the case of the `VirtualConfNode` (reverse config file passthrough),
this resulted in the default `GETATTR` implementation returning an empty
result, ultimately resulting in a "permission denied" error.

    14:44:14.095207 rx 3: GETATTR n2
    14:44:14.095229 tx 3:     OK, {tA=1s {M0100000 SZ=0 L=0 0:0 0 0:8954996 A 0.000000 M 0.000000 C 0.000000}}
    14:44:14.099943 rx 4: ACCESS n2 {u=501 g=20 r}
    14:44:14.099990 tx 4:     13=permission denied

By impementing `Getattr` (from `fs.NodeGetattrer`) on `VirtualConfNode`
this solves the issue.
</content>
</entry>
<entry>
<title>inomap: deterministically set root device</title>
<updated>2021-09-10T15:17:16+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-09-10T15:17:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c9b825c58a9f996379108926754513bca03bb306'/>
<id>urn:sha1:c9b825c58a9f996379108926754513bca03bb306</id>
<content type='text'>
We used to have "first Translate() wins". This is not deterministic,
as the LOOKUP for the root directory does not seem to reach us, so
the first user LOOKUP would win, which may be on a mountpoint.
</content>
</entry>
<entry>
<title>go mod: declare module version v2</title>
<updated>2021-08-23T13:05:15+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-23T13:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=69d88505fd7f4cb0d9e4f1918de296342fe05858'/>
<id>urn:sha1:69d88505fd7f4cb0d9e4f1918de296342fe05858</id>
<content type='text'>
Our git version is v2+ for some time now, but go.mod
still declared v1. Hopefully making both match makes
https://pkg.go.dev/github.com/rfjakob/gocryptfs/v2 work.

All the import paths have been fixed like this:

  find . -name \*.go | xargs sed -i s%github.com/rfjakob/gocryptfs/%github.com/rfjakob/gocryptfs/v2/%
</content>
</entry>
<entry>
<title>-deterministic-names: implement for reverse mode, too</title>
<updated>2021-08-20T15:06:18+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-20T15:06:18+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=fbccb160438aba6f1e16b26a982122c726afee1a'/>
<id>urn:sha1:fbccb160438aba6f1e16b26a982122c726afee1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>golangci-lint: fix issues found by "unused" and "deadcode"</title>
<updated>2021-08-19T06:34:49+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-19T06:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=be2bd4eec7de3836da56a3532ecbcf45a127ece2'/>
<id>urn:sha1:be2bd4eec7de3836da56a3532ecbcf45a127ece2</id>
<content type='text'>
Except xattrSupported, this is a false positive.

$ golangci-lint run --disable-all --enable unused --enable deadcode
gocryptfs-xray/xray_main.go:24:5: `GitVersionFuse` is unused (deadcode)
var GitVersionFuse = "[GitVersionFuse not set - please compile using ./build.bash]"
    ^
tests/symlink_race/main.go:47:6: `chmodLoop` is unused (deadcode)
func chmodLoop() {
     ^
internal/readpassword/extpass_test.go:11:5: `testPw` is unused (deadcode)
var testPw = []byte("test")
    ^
tests/reverse/xattr_test.go:13:6: func `xattrSupported` is unused (unused)
func xattrSupported(path string) bool {
     ^
internal/fusefrontend_reverse/rpath.go:20:22: func `(*RootNode).abs` is unused (unused)
func (rfs *RootNode) abs(relPath string, err error) (string, error) {
                     ^
tests/matrix/matrix_test.go:310:6: `sContains` is unused (deadcode)
func sContains(haystack []string, needle string) bool {
</content>
</entry>
<entry>
<title>Update dependencies</title>
<updated>2021-08-18T15:30:01+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-18T14:21:35+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a7fa91764abbd97a1f5eb525e8d3cdb608546798'/>
<id>urn:sha1:a7fa91764abbd97a1f5eb525e8d3cdb608546798</id>
<content type='text'>
Using

  go get -u
  go mod tidy
</content>
</entry>
<entry>
<title>reverse: fix "exclude all but" case</title>
<updated>2021-08-18T09:38:56+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-18T09:33:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=0bc97845087b1e426d8cb2cb9c36779c4f9b2671'/>
<id>urn:sha1:0bc97845087b1e426d8cb2cb9c36779c4f9b2671</id>
<content type='text'>
With test.

Fixes https://github.com/rfjakob/gocryptfs/issues/588
</content>
</entry>
<entry>
<title>reverse mode: implement -one-file-system</title>
<updated>2021-08-16T17:23:58+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-16T16:40:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b2724070d95234a8cd281f275211e0f827a8bbe1'/>
<id>urn:sha1:b2724070d95234a8cd281f275211e0f827a8bbe1</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/475
</content>
</entry>
</feed>
