diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/fusefrontend/names.go | 15 | ||||
| -rw-r--r-- | internal/fusefrontend/xattr_darwin.go | 19 | 
2 files changed, 19 insertions, 15 deletions
| diff --git a/internal/fusefrontend/names.go b/internal/fusefrontend/names.go index 5d6951c..a6791cc 100644 --- a/internal/fusefrontend/names.go +++ b/internal/fusefrontend/names.go @@ -31,21 +31,6 @@ func (fs *FS) isFiltered(path string) bool {  	return false  } -// GetBackingPath - get the absolute encrypted path of the backing file -// from the relative plaintext path "relPath" -// -// TODO: this function is NOT symlink-safe. -// TODO: Move to xattr_darwin.go. -func (fs *FS) getBackingPath(relPath string) (string, error) { -	cPath, err := fs.encryptPath(relPath) -	if err != nil { -		return "", err -	} -	cAbsPath := filepath.Join(fs.args.Cipherdir, cPath) -	tlog.Debug.Printf("getBackingPath: %s + %s -> %s", fs.args.Cipherdir, relPath, cAbsPath) -	return cAbsPath, nil -} -  // openBackingDir opens the parent ciphertext directory of plaintext path  // "relPath" and returns the dirfd and the encrypted basename.  // diff --git a/internal/fusefrontend/xattr_darwin.go b/internal/fusefrontend/xattr_darwin.go index ad81320..c756486 100644 --- a/internal/fusefrontend/xattr_darwin.go +++ b/internal/fusefrontend/xattr_darwin.go @@ -4,9 +4,13 @@  package fusefrontend  import ( +	"path/filepath" +  	"github.com/pkg/xattr"  	"github.com/hanwen/go-fuse/fuse" + +	"github.com/rfjakob/gocryptfs/internal/tlog"  )  func disallowedXAttrName(attr string) bool { @@ -67,3 +71,18 @@ func (fs *FS) listXAttr(relPath string, context *fuse.Context) ([]string, fuse.S  	}  	return cNames, fuse.OK  } + +// getBackingPath - get the absolute encrypted path of the backing file +// from the relative plaintext path "relPath" +// +// This function is NOT symlink-safe. Darwin needs it because it lacks +// fgetxattr(2) and friends. +func (fs *FS) getBackingPath(relPath string) (string, error) { +	cPath, err := fs.encryptPath(relPath) +	if err != nil { +		return "", err +	} +	cAbsPath := filepath.Join(fs.args.Cipherdir, cPath) +	tlog.Debug.Printf("getBackingPath: %s + %s -> %s", fs.args.Cipherdir, relPath, cAbsPath) +	return cAbsPath, nil +} | 
