fusefrontend: move openBackingDir into its own file
This function is in all fastpaths, will get a cache, and needs its own file. renamed: internal/fusefrontend/names.go -> internal/fusefrontend/openbackingdir.go renamed: internal/fusefrontend/names_test.go -> internal/fusefrontend/openbackingdir_test.go
This commit is contained in:
parent
2b12bba274
commit
352f3147c5
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/hanwen/go-fuse/fuse/nodefs"
|
"github.com/hanwen/go-fuse/fuse/nodefs"
|
||||||
"github.com/hanwen/go-fuse/fuse/pathfs"
|
"github.com/hanwen/go-fuse/fuse/pathfs"
|
||||||
|
|
||||||
|
"github.com/rfjakob/gocryptfs/internal/configfile"
|
||||||
"github.com/rfjakob/gocryptfs/internal/contentenc"
|
"github.com/rfjakob/gocryptfs/internal/contentenc"
|
||||||
"github.com/rfjakob/gocryptfs/internal/nametransform"
|
"github.com/rfjakob/gocryptfs/internal/nametransform"
|
||||||
"github.com/rfjakob/gocryptfs/internal/serialize_reads"
|
"github.com/rfjakob/gocryptfs/internal/serialize_reads"
|
||||||
|
@ -661,3 +662,21 @@ func (fs *FS) reportMitigatedCorruption(item string) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isFiltered - check if plaintext "path" should be forbidden
|
||||||
|
//
|
||||||
|
// Prevents name clashes with internal files when file names are not encrypted
|
||||||
|
func (fs *FS) isFiltered(path string) bool {
|
||||||
|
if !fs.args.PlaintextNames {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// gocryptfs.conf in the root directory is forbidden
|
||||||
|
if path == configfile.ConfDefaultName {
|
||||||
|
tlog.Info.Printf("The name /%s is reserved when -plaintextnames is used\n",
|
||||||
|
configfile.ConfDefaultName)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// Note: gocryptfs.diriv is NOT forbidden because diriv and plaintextnames
|
||||||
|
// are exclusive
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
|
@ -1,36 +1,14 @@
|
||||||
package fusefrontend
|
package fusefrontend
|
||||||
|
|
||||||
// This file forwards file encryption operations to cryptfs
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"github.com/rfjakob/gocryptfs/internal/configfile"
|
|
||||||
"github.com/rfjakob/gocryptfs/internal/nametransform"
|
"github.com/rfjakob/gocryptfs/internal/nametransform"
|
||||||
"github.com/rfjakob/gocryptfs/internal/syscallcompat"
|
"github.com/rfjakob/gocryptfs/internal/syscallcompat"
|
||||||
"github.com/rfjakob/gocryptfs/internal/tlog"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// isFiltered - check if plaintext "path" should be forbidden
|
|
||||||
//
|
|
||||||
// Prevents name clashes with internal files when file names are not encrypted
|
|
||||||
func (fs *FS) isFiltered(path string) bool {
|
|
||||||
if !fs.args.PlaintextNames {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// gocryptfs.conf in the root directory is forbidden
|
|
||||||
if path == configfile.ConfDefaultName {
|
|
||||||
tlog.Info.Printf("The name /%s is reserved when -plaintextnames is used\n",
|
|
||||||
configfile.ConfDefaultName)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// Note: gocryptfs.diriv is NOT forbidden because diriv and plaintextnames
|
|
||||||
// are exclusive
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// openBackingDir opens the parent ciphertext directory of plaintext path
|
// openBackingDir opens the parent ciphertext directory of plaintext path
|
||||||
// "relPath" and returns the dirfd and the encrypted basename.
|
// "relPath" and returns the dirfd and the encrypted basename.
|
||||||
//
|
//
|
Loading…
Reference in New Issue